#include <bits/stdc++.h>
const long double PI = 3.141592653589793238L;
const long long N = 2000005;
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, h;
  cin >> n >> h;
  long long t[n + 1], t2[n + 1];
  for (long long i = (long long)(1); i <= (long long)(n); ++i)
    cin >> t[i], t2[i] = t[i];
  sort(t2 + 1, t2 + n + 1);
  if (n == 2) {
    cout << "0" << '\n' << "1 1" << '\n';
    return 0;
  }
  long long ans, best = -1;
  for (long long i = (long long)(1); i <= (long long)(n); ++i) {
    long long a, b, c, d;
    if (t[i] == t2[1])
      a = 2, b = 3;
    else if (t[i] == t2[2])
      a = 1, b = 3;
    else
      a = 1, b = 2;
    if (t[i] == t2[n])
      c = n - 1, d = n - 2;
    else if (t[i] == t2[n - 1])
      c = n, d = n - 3;
    else
      c = n, d = n - 1;
    long long tmp[4];
    tmp[0] = t2[a] + t2[b];
    tmp[1] = t2[c] + t2[d];
    tmp[2] = t[i] + t2[a] + h;
    tmp[3] = t[i] + t2[c] + h;
    sort(tmp, tmp + 4);
    if (best == -1 || best > tmp[3] - tmp[0]) best = tmp[3] - tmp[0], ans = i;
  }
  if (best > t2[n] + t2[n - 1] - t2[1] - t2[2])
    best = t2[n] + t2[n - 1] - t2[1] - t2[2], ans = -1;
  cout << best << '\n';
  for (long long i = (long long)(1); i <= (long long)(n); ++i)
    cout << ((i == ans) ? "2 " : "1 ");
  cout << '\n';
  return 0;
}
