#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int s = 0;
  char ch = getchar();
  for (; ch < '0' || ch > '9'; ch = getchar())
    ;
  for (; ch >= '0' && ch <= '9'; ch = getchar()) s = s * 10 + ch - '0';
  return s;
}
int a[2005];
map<int, int> mp;
int main() {
  int n, m;
  while (~scanf("%d%d", &n, &m)) {
    mp.clear();
    for (int i = 0; i < n; i++) {
      scanf("%d", &a[i]);
      mp[a[i]]++;
    }
    int ans = n / m;
    int change = 0;
    for (int i = 1; i <= m; i++) {
      if (mp[i] < ans) {
        for (int j = 0; j < n; j++) {
          if (a[j] > m) {
            mp[i]++;
            a[j] = i;
            change++;
            if (mp[i] >= ans) break;
          }
        }
      }
    }
    for (int i = 1; i <= m; i++) {
      if (mp[i] < ans) {
        for (int j = 0; j < n; j++) {
          if (mp[a[j]] > ans) {
            mp[i]++;
            mp[a[j]]--;
            a[j] = i;
            change++;
            if (mp[i] >= ans) break;
          }
        }
      }
    }
    printf("%d %d\n", ans, change);
    for (int i = 0; i < n; i++) printf("%d%c", a[i], i == n - 1 ? '\n' : ' ');
  }
  return 0;
}
