#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long mod2 = 998244353;
const long long N = 1e5 + 12;
pair<long long, long long> a[N];
int a1[N];
long long n, h;
void solve() {
  cin >> n >> h;
  for (int i = 0; i < n; i++) cin >> a[i].first, a[i].second = i;
  if (n == 2) {
    cout << 0 << "\n";
    cout << 1 << " " << 1;
    return;
  }
  sort(a, a + n);
  long long ans = a[n - 1].first + a[n - 2].first - a[0].first - a[1].first;
  long long mi = min(a[1].first + a[2].first, a[0].first + a[1].first + h);
  long long mx =
      max(a[n - 1].first + a[n - 2].first, a[n - 1].first + h + a[0].first);
  if (mx - mi < ans) {
    ans = mx - mi;
    a1[a[0].second] = 1;
  }
  cout << ans << "\n";
  for (int i = 0; i < n; i++) cout << a1[i] + 1 << " ";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  int t = 1;
  while (t--) {
    solve();
    cout << "\n";
  }
  return 0;
}
