#include <bits/stdc++.h>
using namespace std;
bool cmp(const pair<int, int> a, const pair<int, int> b) {
  return a.second < b.second;
}
bool cmp2(const int a, const pair<int, int> b) { return a < b.first; }
int main() {
  string text;
  vector<vector<pair<int, int> > > a(11);
  int size, needed, custo = 0x3f3f3f3f, custo_p = 0, iguais = 0, linha = 0;
  pair<int, int> aux, firstone_val, glob;
  char num;
  vector<pair<int, int> >::iterator up;
  bool firstone = true;
  cin >> size >> needed;
  for (int i = 0; i < size; i++) {
    cin >> num;
    aux.first = num - '0';
    aux.second = i;
    a[0].push_back(aux);
  }
  for (int i = 1; i < 11; i++) {
    a[i].resize(size);
    for (int j = 0; j < a[0].size(); j++) {
      a[i][j].first = abs(a[0][j].first - (i - 1));
      a[i][j].second = a[0][j].second;
    }
    sort(a[i].begin(), a[i].end());
    custo_p = 0;
    iguais = 0;
    firstone = true;
    for (int j = 0; j < a[0].size(); j++) {
      up = upper_bound(a[i].begin(), a[i].end(), a[i][j].first, cmp2);
      if (j + 1 < a[0].size() && a[i][j + 1].first == a[i][j].first &&
          a[0][a[i][j].second].first < i - 1 &&
          needed <= iguais + ((up - a[i].begin()) - 1 - j)) {
        continue;
      } else {
        if (i - 1 < a[0][a[i][j].second].first) {
          if (firstone) {
            firstone_val.first = a[i][j].second;
            firstone_val.second = i - 1;
            firstone = false;
          }
        }
        custo_p += a[i][j].first;
        a[i][j].first = 0;
        iguais++;
        if (iguais == needed) break;
      }
    }
    if (custo_p < custo) {
      custo = custo_p;
      linha = i;
      glob.first = firstone_val.first;
      glob.second = firstone_val.second;
    } else if (custo_p == custo) {
      if (glob.first > firstone_val.first) {
        custo = custo_p;
        linha = i;
        glob.first = firstone_val.first;
        glob.second = firstone_val.second;
      } else if (glob.first == firstone_val.first &&
                 glob.second > firstone_val.second) {
        custo = custo_p;
        linha = i;
        glob.first = firstone_val.first;
        glob.second = firstone_val.second;
      }
    }
  }
  sort(a[linha].begin(), a[linha].end(), cmp);
  cout << custo << endl;
  for (int i = 0; i < a[0].size(); i++) {
    if (a[linha][i].first == 0)
      cout << linha - 1;
    else
      cout << a[0][i].first;
  }
  cout << endl;
  return 0;
}
