#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const long long INF = 1e16;
long long n, h, mark[100005];
pair<long long, long long> A[100005];
void xuly() {
  if (n == 2) {
    cout << 0 << '\n';
    cout << "1 1";
    return;
  }
  sort(A + 1, A + n + 1);
  long long maxx = A[n - 1].first + A[n].first;
  long long minn = A[1].first + A[2].first;
  long long res = maxx - minn;
  long long new_maxx = max(maxx, A[1].first + A[n].first + h);
  long long new_minn =
      min(A[1].first + A[2].first + h, A[2].first + A[3].first);
  if (new_maxx - new_minn < res) {
    res = new_maxx - new_minn;
    mark[A[1].second] = 1;
  }
  cout << res << '\n';
  for (long long i = 1; i <= n; ++i) cout << mark[i] + 1 << " ";
}
void nhap() {
  cin >> n >> h;
  for (long long i = 1; i <= n; ++i)
    cin >> A[i].first, A[i].second = i, mark[i] = 0;
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  nhap();
  xuly();
  return 0;
}
