#include <bits/stdc++.h>
using namespace std;
vector<int> p[200];
set<int> choice, a, b;
int c[300], ans[300] = {0};
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < 2 * n; i++) {
    scanf("%d", &c[i]);
    choice.insert(c[i]);
    p[c[i]].push_back(i);
  }
  int f = 0;
  for (int i = 1; i <= 200; i++) {
    for (int j = 0; j < 200; j++)
      if (p[j].size() == i) {
        for (int k = 0; k < i; k++) {
          if (!f) {
            ans[p[j][k]] = 1;
            a.insert(j);
          } else {
            ans[p[j][k]] = 2;
            b.insert(j);
          }
          f = !f;
        }
      }
  }
  printf("%d\n", a.size() * b.size());
  for (int i = 0; i < 2 * n; i++)
    printf("%d%c", ans[i], i == (2 * n - 1) ? '\n' : ' ');
  return 0;
}
