#include <stdio.h>
#include <vector>

using namespace std;

const int MAXN = 5010;
vector<int> v[MAXN];
int mark[MAXN], prev[MAXN];
FILE *f, *g, *h;
int x, y, n;


void read(){
	int k;
    fscanf(f, "%d",&n);
    for (int i = 0; i < n; i++){
        fscanf(f, "%d",&k);
        for (int j = 0; j < k; j++){
            int a;
            fscanf(f, "%d", &a);
            v[i].push_back(a-1);
        }
    }
    fscanf(g, "%d%d",  &x, &y);
    x--; y--;
}

void swap(int a, int b){
     for (int i = 0; i < v[a].size(); i++)
         if (v[a][i] == b){
            for (int j = i; j < v[a].size()-1; j++)
                v[a][j] = v[a][j+1];
            v[a].pop_back();
         }
     v[b].push_back(a);
}

void dfs(int k){
     for (int i = 0; i < v[k].size(); i++)
         if (prev[v[k][i]]==-1){
            prev[v[k][i]] = k;
            dfs(v[k][i]);                 
         }
}


int main(int argc, char *argv[])
{
    f = fopen(argv[1], "r");
    g = fopen(argv[2], "r");
    h = fopen("scr.txt","w");
    read();
    fclose(f);
    fclose(g);
    memset(prev, -1, sizeof(prev));
    if (x<0 || x >= n || y < 0 || y >= n)
        fprintf(h,"0\n");
    else{
        prev[x] = 0;
        dfs(x);
        if(x!= y && prev[y]!=-1){
           int i = y;
           do{
              swap(prev[i],i);
              i = prev[i];    
           }while(i!=x);
           memset(prev,-1,sizeof(prev));
           dfs(x);
           if (prev[y]!=-1)
              fprintf(h,"10\n");
           else
              fprintf(h,"0\n");
        }
        else
            fprintf(h,"0\n");
    }
    fclose(f);
    fclose(g);
    fclose(h);
    return EXIT_SUCCESS;
}
