#include<bits/stdc++.h>
using namespace std;
bool f[26];
struct node{
int cnt;
char c;
} sk[26];
bool cmp(node a,node b){
return a.cnt<b.cnt;
}
int main(){
string a;
int k,sum=0;
cin>>a>>k;
int sizea=a.size();
if(k>=sizea){
cout<<0<<endl;
return 0;
}
for(int i=0;i<sizea;i++){
if(sk[a[i]-'a'].cnt==0) sum++;
sk[a[i]-'a'].cnt++;
sk[a[i]-'a'].c=a[i];
}
if(sum==1){
cout<<1<<endl<<a;
return 0;
}
for(int i=0;i<26;i++) if(sk[i].cnt==0) sk[i].cnt=0x3fff;
sort(sk,sk+25,cmp);
int i=0;
while(1){
if(sk[i].cnt<=k){
k-=sk[i].cnt;
sum--;
f[sk[i].c-'a']=1;
i++;
}
else break;
}
cout<<sum<<endl;
for(int i=0;i<sizea;i++){
if(f[a[i]-'a']==0) cout<<a[i];
}
return 0;
}
第19个数据爆了,CF上数据太长了,看不出来,求掉