#include <bits/stdc++.h>
using namespace std;
int n, ar[2002 + 5], Mp[2002 + 5], fst[2002 + 2], br[2002 + 2];
int main() {
  int i, j, k;
  scanf("%d", &n);
  int m = 2 * n;
  for (int i = 1; i <= m; i++) scanf("%d", &ar[i]), Mp[ar[i]]++;
  k = 0;
  set<int> St;
  int scnd = 0;
  int f = 0;
  for (i = 10; i <= 99; i++) {
    if (Mp[i] <= 1 || Mp[i] % 2 == 0) continue;
    int fx = (Mp[i] / 2);
    if (f) {
      for (j = 1; j <= fx; j++) {
        if (k < n) fst[k++] = i;
      }
    } else {
      for (j = 1; j <= fx + 1; j++) {
        if (k < n) fst[k++] = i;
      }
    }
    f ^= 1;
  }
  for (i = 10; i <= 99; i++) {
    if (Mp[i] <= 1 || Mp[i] % 2 == 1) continue;
    int fx = (Mp[i] / 2);
    for (j = 1; j <= fx; j++) {
      if (k < n) fst[k++] = i;
    }
  }
  for (i = 10; i <= 99; i++) {
    if (Mp[i] != 1) continue;
    if (k < n) fst[k++] = i;
  }
  for (i = 0; i < n; i++) {
    Mp[fst[i]]--;
  }
  for (j = 10; j <= 99; j++) {
    if (Mp[j]) scnd++, Mp[j] = 0;
  }
  int fs = 1;
  sort(fst, fst + n);
  for (i = 1; i < n; i++) {
    if (fst[i] != fst[i - 1]) fs++;
  }
  int ans = fs * scnd;
  printf("%d\n", ans);
  for (i = 0; i < n; i++) {
    Mp[fst[i]]++;
  }
  for (i = 1; i <= m; i++) {
    if (Mp[ar[i]])
      printf("1 "), Mp[ar[i]]--;
    else
      printf("2 ");
  }
  printf("\n");
  return 0;
}
