import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;

public class Juan {

   public static class Room {
      int room, dist;
      Room(int r, int d) {
         room = r;
         dist = d;
      } 
   };

   public static void main (String[] args) {
      Scanner in = new Scanner(System.in);
      
      int n = in.nextInt();
      int p = in.nextInt();
      int x = in.nextInt();
      int q = in.nextInt();
      ArrayList<LinkedList<Integer>> edges = new ArrayList<LinkedList<Integer>>(n+1);
      for (int i = 0; i <= n; ++i) {
         edges.add(new LinkedList<Integer>());
      }
      for (int i = 0; i < q; ++i) {
         int l = in.nextInt();
         int m = in.nextInt();
         for (int j = 0; j < m; ++ j) {
            int temp = in.nextInt();
            if (l + temp <= n) {
               edges.get(l).add(l + temp);
            }
            if (0 < l -temp) {
               edges.get(l).add(l - temp);
            }
         }
      }
      
      int dist = 0;
      LinkedList<Room> nextRoom = new LinkedList<Room>();
      while (!edges.get(p).isEmpty()) {
         nextRoom.add(new Room(edges.get(p).getFirst(), dist + 1));
         edges.get(p).removeFirst();
      }
      while ((p != x) && (nextRoom.size() != 0)) {
         p = nextRoom.getFirst().room;
         dist = nextRoom.getFirst().dist;
         nextRoom.removeFirst();
         while (!edges.get(p).isEmpty()) {
            nextRoom.add(new Room(edges.get(p).getFirst(), dist + 1));
            edges.get(p).removeFirst() ;
         }
      }
      if (p == x) {
         System.out.println(dist);
      } else {
         System.out.println("Falta el postre");
      }
   }
}
