#include <bits/stdc++.h>
using namespace std;
const long long SIZE = 200005;
const long long mod = (1e8) - 3;
long long n;
long long a[SIZE], b[SIZE], aa[SIZE], bb[SIZE];
long long w[SIZE];
long long c[SIZE];
long long ans;
inline long long rd(){
long long x = 0, f = 1;
char ch = getchar();
while(ch < '0' || ch > '9'){
if(ch == '-') f = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
x = (x<<1)+(x<<3)+(ch^48);
ch = getchar();
}
return x*f;
}
long long lowbit(long long x){
return x & -x;
}
void add(long long x){
for(long long i = x; i <= n; i += lowbit(x)) c[i]++;
}
long long ask(long long x){
long long cnt = 0;
for(long long i = x; i; i -= lowbit(x)) cnt += c[i];
return cnt;
}
int main() {
n = rd();
for(long long i = 1; i <= n; i++) a[i] = rd(), aa[i] = a[i];
for(long long i = 1; i <= n; i++) b[i] = rd(), bb[i] = b[i];
sort(aa+1, aa+n+1);
sort(bb+1, bb+n+1);
for(long long i = 1; i <= n; i++)
a[i] = lower_bound(aa+1, aa+n+1, a[i]) - aa;
for(long long i = 1; i <= n; i++)
b[i] = lower_bound(bb+1, bb+n+1, b[i]) - bb;
for(long long i = 1; i <= n; i++) w[a[i]] = i;
for(long long i = 1; i <= n; i++) a[w[b[i]]] = i;
// for(long long i = 1; i <= n; i++) printf("%d ", a[i]);
// printf("\n");
for(long long i = n; i >= 1; i--){
ans = (ans + ask(a[i]-1)) % mod;
add(a[i]);
}
printf("%lld", ans);
return 0;
}