#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <map>
#define LOCAL
#ifdef LOCAL
#define cin in
#endif

#define FOREACH(i, n) for (typeof(n.begin()) i = n.begin(); i != n.end(); ++i)
#define MEMSET(p, c) memset(p, c, sizeof(p))

using namespace std;

template < class T,class T2 >
T2 fac(T n)
{
    return n<2?1:fac<T,T2>(n-1)*n;
}

template <class T>
T nb_combinaisons(T k,T n)
{
    if(n<k)
        return nb_combinaisons<T>(n,k);
    return fac<T,long long int>(n)/(fac<T,long long int>(n-k)*fac<T,long long int>(k));
}

string itoa_2(long long int n)
{
    string s;
    stringstream ss;
    ss<<n;
    ss>>s;
    while(s.size()!=9)
        s='0'+s;
    return s;
}


int main()
{
    #ifdef LOCAL
        ifstream in("input.txt");
    #endif
   int n,k;
   cin>>n>>k;
   string s;
   cin>>s;
   string s3=s;
   sort(s.begin(),s.end());
   int mini_global=10000000;
   string resultat_mini;
   for(int c=0;c<10;c++)
   {
       string s2=s3;
    int c2;
    for(c2=0;c2<s.size()&&s[c2]<c+'0';c2++);
    int total=abs(s[c2]-'0'-c);
    for(int c3=0;c3<s2.size();c3++)
        if(s2[c3]==s[c2])
        {
            s2[c3]=c+'0';
            break;
        }

    int bas=c2-1,haut=c2+1;
    for(c2=0;c2<k-1;c2++)
    {
        if(haut>=s.size()||(bas>=0&&abs(s[bas]-'0'-c)<=abs(s[haut]-'0'-c)))
        {for(int c3=0;c3<s2.size();c3++)if(s2[c3]==s[bas]){
                    s2[c3]=c+'0';break;}
            total+=abs(s[bas]-'0'-c);
            bas--;
        }
        else
        {
            for(int c3=0;c3<s2.size();c3++)
                if(s2[c3]==s[haut]){
                    s2[c3]=c+'0';break;}
            total+=abs(s[haut]-'0'-c);
            haut++;
        }
    }
    if(mini_global>total)
    {
        mini_global=total;
        resultat_mini=s2;
    }
   }
   cout<<mini_global<<endl<<resultat_mini;
}



