// Parcijalno rjesenje - 2. podzadatak (2 boda)

/*
    Za rjesenje drugog podzadatka, bilo je dovoljno cuvati poziciju zadnje jedinice.
    Kada smaknemo jednu jedinicu, ta se granica smanjuje za jedan (jer se pomjerila ulijevo).
    Na pocetku, granica je na N / 2, kako je i postavljeno tekstom zadatka.
*/

#include <iostream>
#include <vector>

using namespace std;

const int mxn = 2e5 + 5;
int N, Q;
vector<int> g(mxn);
vector<int> ans;

int main() {
    cin >> N >> Q;

    for (int i = 1; i <= N; i++) {
        cin >> g[i];
    }

    int lastOne = N / 2;
    for (int i = 0; i < Q; i++) {
        int p;
        cin >> p;

        if (p <= lastOne) {
            ans.push_back(1);
            lastOne--;
        }

        else {
            ans.push_back(2);
        }
    }

    // Ispis rezultata
    for (auto& x: ans) {
        cout << x << " ";
    }

    return 0;
}
