#include <bits/stdc++.h>
const int N = 110000;
using namespace std;
int a[N];
int main() {
  int n, h;
  scanf("%d%d", &n, &h);
  if (n == 2) {
    printf("0\n1 1\n");
    return 0;
  }
  int mi = 1000000000, mini;
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
    if (a[i] < mi) {
      mi = a[i];
      mini = i;
    }
  }
  sort(a, a + n);
  int Ma1 = a[n - 1] + a[n - 2], Mi1 = a[0] + a[1];
  int Mi2 = min(a[2] + a[1], a[0] + a[1] + h);
  int Ma2 = max(a[n - 2] + a[n - 1], a[0] + a[n - 1] + h);
  if (Ma1 - Mi1 < Ma2 - Mi2) {
    printf("%d\n", Ma1 - Mi1);
    for (int i = 0; i < n; i++) printf("1 ");
    puts("");
  } else {
    printf("%d\n", Ma2 - Mi2);
    for (int i = 0; i < n; i++) {
      if (i == mini)
        printf("2 ");
      else
        printf("1 ");
    }
    puts("");
  }
  return 0;
}
