#include<bits/stdc++.h>
using namespace std;
struct noid
{
long long id,num;
};
vector<noid> g[5][1000010];
long long a[100010],col[100010];
const long long mod=10007;
int main()
{
long long n,m,i,j,k;
long long sum=0;
cin>>n>>m;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
for(i=1;i<=n;i++)
{
cin>>col[i];
}
for(i=1;i<=n;i++)
{
g[i%2][col[i]].push_back(noid{i,a[i]});
}
for(i=1;i<=m;i++)
{
for(j=0;j<g[0][i].size();j++)
{
for(k=j+1;k<g[0][i].size();k++)
{
sum+=(g[0][i][j].id+g[0][i][k].id)*(g[0][i][j].num+g[0][i][k].num);
sum%=mod;
}
}
for(j=0;j<g[1][i].size();j++)
{
for(k=j+1;k<g[1][i].size();k++)
{
sum+=(g[1][i][j].id+g[1][i][k].id)*(g[1][i][j].num+g[1][i][k].num);
sum%=mod;
}
}
}
cout<<sum%mod;
return 0;
}