#include <iostream>
using namespace std;

struct person{ int num,get; };

person dat[3000000];
int n,max_n;

void update(int i,int x){
	i += max_n - 1;
	dat[i].get += x;
	while(i > 0){
		i = (i - 1) / 2;
		if(dat[i * 2 + 1].get < dat[i * 2 + 2].get) dat[i] = dat[i * 2 + 2];
		else if(dat[i * 2 + 1].get > dat[i * 2 + 2].get) dat[i] = dat[i * 2 + 1];
		else if(dat[i * 2 + 1].num < dat[i * 2 + 2].num) dat[i] = dat[i * 2 + 1];
		else dat[i] = dat[i * 2 + 2];
	}
}

void init(){
	max_n = 1;
	while(max_n < n) max_n *= 2;
	for(int i = 0;i < 2 * max_n - 1;i++){
		dat[i].num = 100000000;
		dat[i].get = 0;
	}
	for(int i = 0;i < n;i++) dat[i + max_n - 1].num = i;
	for(int i = 0;i < n;i++) update(i,0);
}

int main(){
	int q;
	cin >> n >> q;
	init();
	for(int i = 0;i < q;i++){
		int a,b;
		cin >> a >> b;
		update(a - 1,b);
		cout << dat[0].num + 1 << " " << dat[0].get << endl;
	}
	return 0;
}