#include <bits/stdc++.h>
using namespace std;
struct P
{
	int a, v;
	
	bool operator<(const P &t)const{
		if (v == t.v) return a > t.a;
		return v < t.v;
	}
};

int n;
P dat[2000000];

void update(int i, int x)
{
	i += n - 1;
	dat[i].v += x;
	while (i > 0){
		i = (i - 1) / 2;
		dat[i] = max(dat[i * 2 + 1], dat[i * 2 + 2]);
	}
}

int main()
{
	int q;
	scanf("%d %d", &n, &q);
	
	for (int i = 1;; i *= 2){
		if (n <= i){
			n = i;
			break;
		}
	}
	for (int i = 0; i < n; i++){
		dat[i + n - 1].a = i;
	}
	
	for (int i = 0; i < q; i++){
		int a, v;
		scanf("%d %d", &a, &v);
		a--;
		update(a, v);
		printf("%d %d\n", dat[0].a + 1, dat[0].v);
	}
	
	return 0;
}