#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long n, m, a;
  vector<long long> v;
  vector<long long> b(2002, 0);
  cin >> n >> m;
  for (long long i = 0; i < n; i++) {
    cin >> a;
    v.push_back(a);
    if (a <= m) b[a]++;
  }
  vector<long long> z(2002, 0);
  long long mi = n / m;
  long long q = n % m;
  long long w = 0;
  vector<long long> c;
  vector<bool> comp(2002, 0);
  vector<long long> pre(2002, 0);
  for (long long i = 1; i <= m; i++) {
    if (b[i] > mi && w < q) {
      z[i] = mi + 1;
      w++;
    } else
      z[i] = mi;
    for (long long j = b[i]; j < z[i]; j++) c.push_back(i);
  }
  long long qwe = c.size();
  long long second = 0;
  for (long long i = 0; i < n; i++) {
    if (v[i] > m) {
      if (second < qwe) {
        v[i] = c[second];
        pre[c[second]]++;
        if (pre[c[second]] == z[c[second]]) comp[c[second]] = 1;
        second++;
      }
    } else if (comp[v[i]]) {
      if (second < qwe) {
        v[i] = c[second];
        pre[c[second]]++;
        if (pre[c[second]] == z[c[second]]) comp[c[second]] = 1;
        second++;
      }
    } else {
      pre[v[i]]++;
      if (pre[v[i]] == z[v[i]]) comp[v[i]] = 1;
    }
  }
  cout << mi << " " << qwe << endl;
  for (long long i = 0; i < n; i++) cout << v[i] << " ";
  return 0;
}
