#include <bits/stdc++.h>
#define MAXN 100005
#define mod 99999997
using namespace std;
int n,ans,c[MAXN],d[MAXN];
struct node{
int x,num;
}a[MAXN],b[MAXN];
void mergesort(int l,int r){
if(l==r)return ;
int mid=(l+r)>>1;
mergesort(l,mid),mergesort(mid+1,r);
for(int i=l,j=l,k=mid+1;i<=r;i++){
if(j==mid+1)d[i]=c[k++];
if(k==r+1){
d[i]=c[j++];
ans=(ans+(k-mid-1))%mod;
}
else if(c[j]<=c[k]){
d[i]=c[j++];
ans=(ans+(k-mid-1))%mod;
}
else d[i]=c[k++];
}
for(int i=l;i<=r;i++)c[i]=d[i];
}
bool cmp(node A,node B){
return A.x<B.x;
}
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i].x);
a[i].num=i;
}
for(int i=1;i<=n;i++){
scanf("%lld",&b[i].x);
b[i].num=i;
}
sort(a+1,a+n+1,cmp);
sort(b+1,b+n+1,cmp);
for(int i=1;i<=n;i++)c[b[i].num]=a[i].num;
mergesort(1,n);
printf("%lld",ans);
return 0;
}