#include<cstdio>
#include<algorithm>
#define N 11451
using namespace std;
int mn,mx,n,k,a[N],x,mnn=2147483647,mnx=0,c[N],now[N],d[N];
char s[N];
struct node{
int v,id;
}b[N];
bool cmp(node a,node b){
if(abs(a.v-x)==abs(b.v-x))return a.id*a.v<b.id*b.v;
return abs(a.v-x)<abs(b.v-x);
}
signed main(){
scanf("%d%d",&n,&k);
scanf("%s",s+1);
for(int i=1;i<=n;i++)a[i]=s[i]-48,mn=min(mn,a[i]),mx=max(mx,a[i]);
for(x=mn;x<=mx;x++){
c[0]=d[0]=0;
for(int i=1;i<=n;i++)b[i].v=a[i],b[i].id=i,c[i]=0,d[i]=0;
sort(b+1,b+n+1,cmp);
int res=0;
for(int i=1;i<=k;i++)res+=abs(x-b[i].v);
if(res<mnn){
mnx=x,mnn=res;
for(int i=1;i<=k;i++)c[b[i].id]=1;
for(int i=1;i<=n;i++)now[i]=c[i]?x:a[i];
}
else if(res==mnn){
for(int i=1;i<=k;i++)d[b[i].id]=1;
for(int i=1;i<=n;i++){
if(now[i]>(d[i]?x:a[i])){
mnx=x,mnn=res;
for(int i=1;i<=k;i++)c[b[i].id]=1;
for(int i=1;i<=n;i++)now[i]=c[i]?x:a[i];
break;
}
if(now[i]<(d[i]?x:a[i]))break;
}
}
}
printf("%d\n",mnn);
for(int i=1;i<=n;i++)printf("%c",now[i]+'0');
return 0;
}