#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cassert>
#include <vector>
#include <string>
#include <cmath>
#include <map> 
#include <sstream>
#include <cstdio>
#include <queue>
using namespace std;
 
const int MAX= 10000100;

#define loop(i,a,b) for(int i = a ; i < b ; i ++)
#define rep(i,a) loop(i,0,a)
#define all(a) (a).begin(),(a).end()
#define ll long long int
#define gcd(a,b) __gcd(a,b)
#define pb(a) push_back(a)
int GCD(int a, int b) {if(!b) return a; return gcd(b, a%b);}
int lcm(int a, int b) {return a*b / gcd(a, b);}
typedef pair<int,int> pii;
int main(void){
  int n,m;
  cin>>n>>m;
  map<int,int> mp;
  priority_queue<pii> q;
  rep(i,m){
    int a,b;
    cin>>a>>b;
    mp[a] += b;
    q.push(make_pair(mp[a],-a));
    while(true){
      pii p = q.top();
      if(mp[-p.second] == p.first){
	cout<<-p.second<<" "<<p.first<<endl;
	break;
      }
      q.pop();
    }
  }
}