#include<deque>
#include<list>
#include<map>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include<algorithm>
#include<string>
#include<iostream>
#include<numeric>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
struct pr{
  bool operator()(const int* p,const int* q)const{
    if(*p==*q)
      return p<q;
    else
      return *p>*q;
  }
};
int main(){
  int i;
  int n,m;
  scanf("%d%d",&n,&m);
  int a[1000000]={};
  set<int*,pr> b;
  for(i=0;i<n;++i)
    b.insert(a+i);
  while(m--){
    int p,q;
    scanf("%d%d",&p,&q);
    --p;
    set<int*,pr>::iterator it=b.find(a+p);
    int* r=*it;
    b.erase(it);
    a[p]+=q;
    b.insert(r);
    printf("%d %d\n",*b.begin()-a+1,**b.begin());
  }
  return 0;
}