#include<bits/stdc++.h>
using namespace std;
int n,m,num[10000][10000],coler[100010],number[100010],ans=0;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&number[i]);
for(int i=1;i<=n;i++){
scanf("%d",&coler[i]);
num[coler[i]][0]++,num[coler[i]][num[coler[i]][0]]=i;
coler[n+1]=max(coler[n+1],coler[i]);
}
for(int i=1;i<=coler[n+1];i++){
for(int j=1;j<=num[i][0];j++){
for(int l=j+1;l<=num[i][0];l++){
if((num[i][l]-num[i][j])%2==0){
ans=((ans%10007)+(((num[i][l]%10007)+(num[i][j]%10007))*((number[num[i][l]]%10007)+(number[num[i][j]]%10007))))%10007;
}
}
}
}
printf("%d",ans);
return 0;
}