#include <bits/stdc++.h>
using namespace std;
struct node {
  int a, i;
  node() {}
};
int ret[100000];
node p[100000];
bool comp1(node a, node b) { return a.a < b.a || (a.a == b.a && a.i > b.i); }
bool comp2(node a, node b) { return a.a < b.a || (a.a == b.a && a.i < b.i); }
int main() {
  int n, a, b, i;
  scanf("%d %d %d", &n, &a, &b);
  for (i = 0; i < n; i++) {
    scanf("%d", &p[i].a);
    p[i].i = i;
  }
  if (a == b) {
    printf("1");
    a--;
    while (a--) printf(" 1");
    while (b--) printf(" 2");
  } else {
    if (a < b) {
      sort(p, p + n, comp1);
      for (i = 0; i < n; i++)
        if (i < b)
          ret[p[i].i] = 2;
        else
          ret[p[i].i] = 1;
    } else {
      sort(p, p + n, comp2);
      for (i = 0; i < n; i++)
        if (i < a)
          ret[p[i].i] = 1;
        else
          ret[p[i].i] = 2;
    }
    for (i = 0; i < n; i++) {
      if (i) printf(" ");
      printf("%d", ret[i]);
    }
  }
  return 0;
}
