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


vector<int> Zlato;
vector<int> Resenja;

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

	PopuniZlato(V, ++Brojac, Broj);
}

void PopuniScenarije(std::vector<pair<int, int>>& V, int& Brojac, int Broj)
{
	if (Brojac == Broj) return;
	int temp1, temp2;
	cin >> temp1 >> temp2;
	V.push_back(pair<int, int>(temp1, temp2));

	PopuniScenarije(V, ++Brojac, Broj);
}

int main() 
{
	vector<pair<int, int>> Scenariji;
	int BrojScenarija, BrojBanki, Brojac = 0;
	cin >> BrojBanki;
	Brojac = 0;
	PopuniZlato(Zlato, Brojac, BrojBanki);
	Brojac = 0;
	cin >> BrojScenarija;
	PopuniScenarije(Scenariji, Brojac, BrojScenarija);
	if (*max_element(Zlato.begin(), Zlato.end()) == *min_element(Zlato.begin(), Zlato.end())) {
		cout << floor(BrojBanki / 2) << endl;
	}
	else {
		cout << max_element(Zlato.begin(), Zlato.end()) - Zlato.begin() + 1 << endl;
	}
	for (int i = 0; i < BrojScenarija; i++)
	{
		Zlato[Scenariji[i].second - 1] += Scenariji[i].first;
		if (*max_element(Zlato.begin(), Zlato.end()) == *min_element(Zlato.begin(), Zlato.end())) {
			cout << floor(BrojBanki / 2) << endl;
		}
		else {
			auto ite = (max_element(Zlato.begin(), Zlato.end()) - Zlato.begin()) + 1;
			cout << ite << endl;
		}
	}
}