#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <math.h>
using namespace std;

vector<int> Resenja;

int medijan(vector<int>& v)
{
    size_t n = v.size() / 2;
    nth_element(v.begin(), v.begin() + n, v.end());
    return v[n];
}

void UpisiVektor(vector<int>& V, int Broj, int& Brojac)
{
    if (Broj == Brojac) return;
    int temp;
    cin >> temp;
    V.push_back(temp);
    UpisiVektor(V, Broj, ++Brojac);
}

void IspisiVektor(vector<int>& V, vector<int>::iterator It)
{
    if (It == V.end()) return;
    cout << *It << endl;
    IspisiVektor(V, ++It);
}

void ResiMod(int& Brojac, int& Ref, vector<int>& GlasoviCop)
{
    if (medijan(GlasoviCop) == Ref) return;
    GlasoviCop.insert(GlasoviCop.begin(), Ref);
    ResiMod(++Brojac, Ref, GlasoviCop);
}

void ResiScenario(vector<int>& V, vector<int> GlasoviCop, vector<int>& GlasoviOrig, vector<int>::iterator It)
{
    if (It == V.end()) return;
    int Brojac = 0;
    ResiMod(Brojac, *It, GlasoviCop);
    Resenja.push_back(Brojac);
    ResiScenario(V, GlasoviOrig, GlasoviOrig, ++It);
}

int main() 
{
    vector<int> Glasovi, Scenariji;
    int brojGlasova, brojScenaria, Brojac = 0;
    cin >> brojGlasova >> brojScenaria;

    UpisiVektor(Glasovi, brojGlasova, Brojac);
    Brojac = 0;
    UpisiVektor(Scenariji, brojScenaria, Brojac);

    ResiScenario(Scenariji, Glasovi, Glasovi, Scenariji.begin());

    IspisiVektor(Resenja, Resenja.begin());
}