#include <bits/stdc++.h>
using namespace std;
int n, m, ans, changes = 0;
set<int> gm, extra;
vector<int> arr(2e3 + 3);
map<int, int> cnt;
int main(void) {
  ios ::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m;
  ans = n / m;
  for (int i = 1; i <= m; ++i) {
    cnt[i] = 0;
  }
  for (int i = 1; i <= n; ++i) {
    cin >> arr[i];
    if (arr[i] > m) {
      gm.insert(i);
    } else {
      if (cnt[arr[i]] < ans) {
        ++cnt[arr[i]];
      } else {
        extra.insert(i);
      }
    }
  }
  for (int i = 1; i <= m; ++i) {
    while (ans - cnt[i] > 0 && extra.size() > 0) {
      auto pos = *(extra.begin());
      arr[pos] = i;
      extra.erase(pos);
      ++changes;
      ++cnt[i];
    }
    while (ans - cnt[i] > 0 && gm.size() > 0) {
      auto pos = *(gm.begin());
      arr[pos] = i;
      gm.erase(pos);
      ++changes;
      ++cnt[i];
    }
  }
  cout << ans << " " << changes << "\n";
  for (int i = 1; i <= n; ++i) {
    cout << arr[i] << " \n"[i == n];
  }
  return 0;
}
