#include <bits/stdc++.h>
using namespace std;
const long long int inf = 9e18;
int main() {
  long long int n, h;
  cin >> n >> h;
  vector<pair<long long int, long long int>> in(n);
  for (int i = 0; i <= n - 1; i++) {
    cin >> in[i].first;
    in[i].second = i;
  }
  sort(in.begin(), in.end());
  vector<long long int> ans(n, 1);
  long long int x =
      in[n - 1].first + in[n - 2].first - in[0].first - in[1].first;
  if (max(in[n - 1].first + in[0].first + h,
          in[n - 1].first + in[n - 2].first) -
          min(in[0].first + in[1].first + h,
              in[1].first + (n > 2 ? in[2].first : in[0].first + h)) <
      in[n - 1].first + in[n - 2].first - in[0].first - in[1].first) {
    x = max(in[n - 1].first + in[0].first + h,
            in[n - 1].first + in[n - 2].first) -
        min(in[0].first + in[1].first + h,
            in[1].first + (n > 2 ? in[2].first : in[0].first + h));
    ans[in[0].second] = 2;
  }
  cout << x << "\n";
  ;
  for (long long int i = 0; i < n; i++) cout << ans[i] << ' ';
  ;
  cout << "\n";
}
