#include <iostream>
#include <cstring>
#include <climits>
using namespace std;

typedef pair<int,int> P;

P myMax(const P &x, const P &y){
  if(x.first == y.first && x.second < y.second ||
     x.first > y.first){
    return x;
  }
  return y;
}

const int MAX_N = 1 << 24; // 13万程度の数

int n;
P dat[2 * MAX_N - 1];

void init(int n_){
  n = 1;
  while(n < n_) n *= 2;
  for(int i = 0; i < 2 * n - 1; i++) dat[i] = P(INT_MIN, -1);
}

void update(int tk, int a){
  int k = tk + n - 1;
  if(dat[k].first == INT_MIN){
    dat[k] = P(a, tk + 1);
  }
  else{
    dat[k].first += a;
  }

  while(k > 0){
    k = (k - 1) / 2;
    dat[k] = myMax(dat[k * 2 + 1], dat[k * 2 + 2]);
  }
}

int main(){
  int m, q;

  while(cin >> m >> q){
    init(m);

    for(int i = 0; i < m; i++){
      update(i, 0);
    }

    for(int i = 0; i < q; i++){
      int x, y;
      cin >> x >> y;
      update(x - 1, y);

      P ans = dat[0];
      cout << ans.second << " " << ans.first << endl;
    }
  }
}