#include <bits/stdc++.h>
const int maxn = 100005;
int data[maxn], tot[6][maxn], flag[maxn], a, b, n;
void init() {
  scanf("%d%d%d", &n, &a, &b);
  for (int i = 0; i < n; i++) {
    scanf("%d", &data[i]);
    tot[data[i]][++tot[data[i]][0]] = i + 1;
  }
}
void work() {
  if (a == b) {
    for (int i = 0; i < a; i++) printf("1 ");
    for (int i = 0; i < b - 1; i++) printf("2 ");
    printf("2\n");
  } else {
    int t = a < b ? 5 : 1, next = a < b ? -1 : 1;
    while (a) {
      for (int i = 1; i <= tot[t][0] && a; i++) {
        flag[tot[t][i]] = 1;
        a--;
      }
      t += next;
    }
    for (int i = 1; i <= n; i++) {
      if (flag[i])
        printf("1");
      else
        printf("2");
      if (i < n)
        printf(" ");
      else
        printf("\n");
    }
  }
}
int main() {
  init();
  work();
  return 0;
}
