#include #include #include #include using namespace std; #define NMAX 10005 queue q; vector G[NMAX]; int n,m,s,x,y,sol,Nr[NMAX],a[NMAX],b[NMAX]; void citire() { int i; scanf("%d%d",&n,&m); memset(Nr,0x3f,sizeof(Nr)); for (i=1;i<=m;++i) { scanf("%d",&a[i]); q.push(a[i]); Nr[a[i]]=1; } for (i=1;i<=m;++i) scanf("%d",&b[i]); for (i=1;iNr[x]+1) { q.push(y); Nr[y]=Nr[x]+1; } } } } int main() { int i; // freopen("date.in","r",stdin); // freopen("date.out","w",stdout); citire(); bfs(); sol=Nr[b[1]]-1; for (i=2;i<=m;++i) { sol=max(sol,Nr[b[i]]-1); } printf("%d",sol); printf("\n"); return 0; }