#include <bits/stdc++.h>
using namespace std;
bool operator<(pair<int, int> a, pair<int, int> b) {
  if (a.first != b.first) return a.first < b.first;
  return a.second < b.second;
}
int main() {
  int n;
  scanf("%d", &n);
  vector<int> e(n);
  vector<pair<int, int> > v(n);
  int a, b;
  scanf("%d %d", &a, &b);
  for (int i = 0; i < n; i++) {
    scanf("%d", &v[i].first);
    e[i] = v[i].first;
    v[i].second = i;
  }
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  vector<int> ans(n, 1);
  if (a == b) {
    for (int i = 0; i < a; i++) cout << 1 << ' ';
    for (int i = 0; i < a; i++) cout << 2 << ' ';
    return 0;
  }
  int a2[10];
  memset((a2), 0, sizeof(a2));
  if (a < b) {
    for (int i = a; i < v.size(); i++) {
      a2[v[i].first]++;
    }
  } else {
    for (int i = 0; i < b; i++) {
      a2[v[i].first]++;
    }
  }
  for (int mark = 0; mark < 10; mark++) {
    for (int i = v.size() - 1; i >= 0; i--) {
      if (a2[mark] == 0) break;
      if (e[i] != mark) continue;
      a2[mark]--;
      ans[i] = 2;
    }
  }
  for (int i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
  return 0;
}
