#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:100000000000000")
using namespace std;
int n, m, arr[2501], cnt[2501];
int main() {
  cin >> n >> m;
  int ans = n / m;
  vector<int> vec;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    if (arr[i] > m)
      vec.push_back(i);
    else
      cnt[arr[i]]++;
  }
  int chng = 0;
  int j = 0;
  for (int i = 1; i < m + 1; i++) {
    while (cnt[i] < ans) {
      if (j >= vec.size()) break;
      cnt[i]++;
      chng++;
      arr[vec[j++]] = i;
    }
  }
  if (j >= vec.size()) {
    vec.clear();
    for (int i = 0; i < n; i++)
      if (cnt[arr[i]] > ans) vec.push_back(i);
    j = 0;
    for (int i = 1; i < m + 1; i++) {
      while (cnt[i] < ans) {
        while (j < vec.size() && cnt[arr[vec[j]]] <= ans) j++;
        if (j >= vec.size()) break;
        cnt[i]++;
        cnt[arr[vec[j]]]--;
        arr[vec[j]] = i;
        j++;
        chng++;
      }
    }
  }
  cout << ans << ' ' << chng << endl;
  for (int i = 0; i < n; i++) cout << arr[i] << ' ';
  return 0;
}
