#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,mod=1e8-3;
long long n,tmp[N],x[N],ans;
struct node{
int w,id;
}a[N],b[N];
bool cmp(node x,node y){
return x.w<y.w;
}
void msort(int lt,int rt)
{
if(lt==rt)
return ;
long long mid=(lt+rt)/2;
msort(1,mid);
msort(mid+1,rt);
int i=lt,j=mid+1,p=lt;
while(i<=mid&&j<=rt){
if(x[i]<=x[j])
{
tmp[p++]=x[i++];
}
else{
tmp[p++]=x[j++];
ans+=(mid-i+1)%mod;
}
}
while(i<=mid){
tmp[p++]=x[i++];
}
while(j<=rt){
tmp[p++]=x[j++];
}
for(int k=lt;k<=rt;k++){
x[k]=tmp[k];
}
return ;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].w;
a[i].id=i;
}
for(int i=1;i<=n;i++){
cin>>b[i].w;
b[i].id=i;
}
sort(a+1,a+1+n,cmp);
sort(b+1,b+1+n,cmp);
for(int i=1;i<=n;i++){
x[b[i].id]=a[i].id;
}
msort(1,n);
cout<<ans%mod;
return 0;
}