#include<bits/stdc++.h>
using namespace std;
int n,k,f[200005],b[200005],num,nums;
struct node{
int job,man;
}a[200005];
bool cmp(node x,node y){
if(x.job!=y.job) return x.job<y.job;
else return x.man>y.man;
}
bool cmb(int x,int y){
return x<y;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i].job;
}
for(int i=1;i<=n;i++){
cin>>a[i].man;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
if(f[a[i].job]==0)f[a[i].job]=1,nums++;
else b[++num]=a[i].man;
}
sort(b+1,b+num+1,cmb);
num=0;
if(k>nums)for(int i=1;i<=k-nums;i++){
num+=b[i];
}
cout<<num;
return 0;
}