#include<bits/stdc++.h>
//#include<alorgithm>
using namespace std;
struct ai{
int date,value;
}a[9999];
bool cmp(ai a,ai b){
if(a.value==b.value)
return a.date<b.date;
return a.value>b.value;
}
int main(){
int maxx=-1,n,m,i;
cin>>m>>n;
for(i=1;i<=n;i++){
cin>>a[i].date;maxx=max(maxx,a[i].date);
}
for(i=1;i<=n;i++){
cin>>a[i].value;m-=a[i].value;
}
sort(a+1,a+n+1,cmp);
int time=0,bottom=1;
for(i=1;i<=n;i++){
if(a[i].date>time){
m+=a[i].value;
time++;
// cout<<a[i].value<<" ";
}
if(i>maxx)
break;
}
cout<<m;
return 0;
}
RT,我用贪心查出来很显然是错误的