#include using namespace std; const int N=1e4+10; int n,a[N],b[N]; bool vis[N][N]; int f(int x,int y) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) vis[i][j]=false; for(int i=0;;i++) { if(x==y) return i; if(vis[x][y]) return 0; vis[x][y]=true,x=a[x],y=b[y]; } } int main() { int ans=0; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) scanf("%d",&b[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) (ans+=f(i,j))%=(int)(1e9+7); printf("%d",ans); return 0; }