#include<bits/stdc++.h>
using namespace std;
struct st{
long long col,numb,bh;
}a[100010];
long long n,m,ans;
bool cmp(st a1,st a2){
return a1.col<a2.col;
if(a1.col==a2.col){
return a1.bh<a2.bh;
}
}
int main() {
cin>>n>>m;
for(long long i=1;i<=n;i++){
cin>>a[i].numb;
a[i].bh=i;
}
for(long long i=1;i<=n;i++){
cin>>a[i].col;
}
sort(a+1,a+1+n,cmp);
for(long long i=1;i<=n;i++){
for(long long j=i+1;j<=n;j++){
if(a[j].col!=a[i].col){
break;
}else if((a[j].bh-a[i].bh)%2!=0){
continue;
}else{
ans+=(a[i].bh+a[j].bh)*(a[i].numb+a[j].numb);
ans=ans%10007;
}
}
}
cout<<ans;
return 0;
}