#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <cstdio>
#include <queue>
#include <stack>
#include <map>
#include <set>

#define rep(i, n) for(int i = 0; i < n; i++)
#define FOR(i, a, b) for(int i = a; i < b; i++)
#define all(v) (v).begin(), (v).end()
#define MP make_pair

using namespace std;


int main(){
	map<int, int> av;	// 参加者番号,匹数
	map<int, set<int> > va; // 匹数,番号

	va[0].insert(0);

	int n, q;

	cin >> n >> q;
	while(q--){
		int a, v;
		cin >> a >> v;
		set<int>::iterator it = va[av[a]].find(a);
		if(it != va[av[a]].end()){
			if(va[av[a]].size() == 1){
				map<int, set<int> >::iterator mit = va.find(av[a]);
				va.erase(mit++);
			}else{
				va[av[a]].erase(it++);
			}
		}

		av[a] += v;
		va[av[a]].insert(a);

		//cout << "*-*";
		cout << *((*va.rbegin()).second.begin()) << ' ' << (*va.rbegin()).first << endl;
	}


	return 0;
}