init();
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
add(a,b,i,0);
add(b,a,i,0);
}
memset(ans,0,sizeof(ans));
Bridge(n);
solve(n);
memset(vis,0,sizeof(vis));
dfs(1,0);
scanf("%d",&q);
for(i=1;i<=q;i++)
scanf("%d%d",&a,&b);
if(low[a]!=low[b])
{
add(low[a],low[b],i,2);
add(low[b],low[a],i,2);
}
}
memset(vis,0,sizeof(vis));
lca(1);
for(i=1;i<=q;i++)
printf("%d\n",ans[i]);
return 0;
}