#include <bits/stdc++.h>
int main() {
  int x[110], y[110], cx, cy, i, j, n, cnt[110], a[210], hp[210], v, nx, ny, pl,
      n2, fv;
  scanf("%d", &n);
  for (i = 0; i < 101; i++) cnt[i] = 0;
  n2 = n * 2;
  for (i = 0; i < n2; i++) {
    scanf("%d", &v);
    a[i] = v;
    cnt[v]++;
    hp[i] = 0;
  }
  cx = 0;
  cy = 0;
  pl = 0;
  for (i = 10; i < 100; i++) {
    if (cnt[i] > 1) {
      fv = cnt[i] / 2;
      for (j = 0; j < fv; j++) {
        x[cx] = i;
        cx++;
        y[cy] = i;
        cy++;
      }
      if (cnt[i] % 2 == 1) {
        if (pl == 0) {
          x[cx] = i;
          cx++;
          pl = 1;
        } else {
          y[cy] = i;
          cy++;
          pl = 0;
        }
      }
      cnt[i] = 0;
    }
  }
  for (i = 10; i < 100; i++) {
    if (cnt[i] == 1) {
      if (pl == 0) {
        x[cx] = i;
        cx++;
        pl = 1;
      } else {
        y[cy] = i;
        cy++;
        pl = 0;
      }
      cnt[i] = 0;
    }
  }
  for (i = 0; i < cx; i++) {
    v = x[i];
    for (j = 0; j < n2; j++) {
      if (hp[j] == 0) {
        if (a[j] == v) {
          hp[j] = 1;
          break;
        }
      }
    }
  }
  for (i = 0; i < cy; i++) {
    v = y[i];
    for (j = 0; j < n2; j++) {
      if (hp[j] == 0) {
        if (a[j] == v) {
          hp[j] = 2;
          break;
        }
      }
    }
  }
  for (i = 0; i < 100; i++) cnt[i] = 0;
  nx = ny = 0;
  for (i = 0; i < cx; i++) {
    v = x[i];
    if (cnt[v] == 0) {
      nx++;
      cnt[v] = 1;
    }
  }
  for (i = 0; i < 105; i++) cnt[i] = 0;
  for (i = 0; i < cy; i++) {
    v = y[i];
    if (cnt[v] == 0) {
      ny++;
      cnt[v] = 1;
    }
  }
  printf("%d\n", nx * ny);
  for (i = 0; i < n2; i++) {
    printf("%d ", hp[i]);
  }
  return 0;
}
