就错1个点
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1005;
int n,m,cnt[maxn],k,Max=-(1<<30);
LL ans;
struct num{
int p,c;
bool operator <(const num &b)const{return c>b.c;}
}a[maxn],b[maxn];
int read(){
int ret=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch))ret=(ret<<3)+(ret<<1)+(ch&15),ch=getchar();
return ret*f;
}
int main(){
n=read(),m=read();cnt[1]=m;
for(int i=1;i<=m;i++){
a[i].p=read(),a[i].c=read();
if(a[i].p!=1)ans+=a[i].c,b[++k]=(num){a[i].p,a[i].c};
}
sort(b+1,b+1+k);
for(int i=1;i<=k;i++){
if(Max>=cnt[1]-1)break;
if(cnt[b[i].p]+1>=cnt[1]-1)continue;
cnt[b[i].p]++;cnt[1]--;ans-=b[i].c;Max=max(Max,cnt[b[i].p]);
}
printf("%lld\n",ans);
return 0;
}