#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=2e5+5,mod=998244353,inf=9e18;
#define pii pair<int,int>
#define fi first
#define se second
pii a[maxn],b[25];
map<pii,int> mp;
int k,cnt,f[25],p;
unsigned int ans=1;
void dfs(int s,unsigned int sum){
if(s>k){
ans=max(ans,sum);
return;
}
for(int i=1;i<=cnt;i++){
if(f[i]) continue;
f[i]=1;
dfs(s+1,sum*b[i].fi+b[i].se);
f[i]=0;
}
}
signed main(){
cin.tie(0);
int n;cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i].fi>>a[i].se,mp[a[i]]++;
sort(a+1,a+n+1,[](pii x,pii y){
if(x.fi!=y.fi)return x.fi>y.fi;
return x.fi+x.se>y.fi+y.se;
});
for(int i=1;i<=n&&cnt<k;i++)
if(mp[a[i]]) b[++cnt]=a[i],mp[a[i]]--;
sort(a+1,a+n+1,[](pii x,pii y){
if(x.fi+x.se!=y.fi+y.se)return x.fi+x.se>y.fi+y.se;
return x.fi>y.fi;
});
for(int i=1;i<=n&&cnt<=k;i++)
if(mp[a[i]]) b[++cnt]=a[i],mp[a[i]]--;
dfs(1,1);
cout<<ans;
return 0;
}
思路就是找 a+b 最大的 10 个数和除此之外 a 最大的 1 个数全排列枚举,看起来就很假,我也觉得它就是假的,但它能过 QwQ