#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;
bool pr(const pair<int,int>& p,const pair<int,int>& q){
  if(p.second==q.second)
    return p.first<q.first;
  else
    return p.second>q.second;
}
int main(){
  int i;
  int n,m;
  cin>>n>>m;
  int a[1000000]={};
  vector<pair<int,int> > b(n);
  for(i=0;i<n;++i)
    b[i]=make_pair(i,0);
  while(m--){
    int p,q;
    cin>>p>>q;
    --p;
    int r=lower_bound(b.begin(),b.end(),make_pair(p,a[p]),pr)-b.begin();
    pair<int,int> s=b[r];
    a[p]+=q;
    s.second+=q;
    b.erase(b.begin()+r);
    b.insert(lower_bound(b.begin(),b.end(),s,pr),s);
    cout<<b[0].first+1<<' '<<b[0].second<<endl;
  }
  return 0;
}