#include<stdio.h>

int main(void){
//13はあとでnに書き換える
int p,c,n,r;

int i,j,k = 0;
int counter;
int array_count;

/*
scanf("%d",&n);
scanf("%d",&p);
scanf("%d",&c);
*/
//puts("");

//scanf("%d",&n);

//書き潰される前にバッファに退避　大きさはc 関数1回ごとに初期化

//do{
/*
scanf("%d",&p);
scanf("%d",&c);
*/
while(1){

scanf("%d %d",&n,&r); /*n枚のデッキを r回シャッフルしてprintf 次に
p cはそのデッキの上からの枚数を考える
*/
if(n == 0 && r == 0) break;
int int_arr[n];
for(i=0;i<n;i++){
int_arr[i] = i+1;
}


for(k=0;k<r;k++){
array_count = 0;
counter = 0;
scanf("%d %d",&p,&c); 

// 1 10のとき　シャッフル必要ない　p-1 = 0だったら、シャッフルしないとか入れよう
if(p-1 == 0) continue;

int buffer[c]; 

for(j=n-p-c+1;j<n-p+1;j++){ //バッファに退避 終了条件+1いらないかも
buffer[-n+p+c-1+j] = int_arr[j];
array_count++;
}//ここ大丈夫

// ここからがまずい
/*
for(j=n-p-c+1;j<n-p+1;j++){ //バッファをプリント
printf("バッファは%d",buffer[-n+p+c-1+j]);
}
puts("");
*/

/*
for(j=n-p-c; j<n-p;j++){//上を下にシャッフル だめ
 int_arr[j+1] = int_arr[j+p]; //ここか デバッグ　ここの右辺　index がj+c=11でオーバフロー
 }
 
for(i = 0;i<n;i++){
printf("%d",int_arr[i]);
puts("");
}
 
puts("");
for(j=n-c+1;j<n;j++){
 int_arr[j]=buffer[-n+c-1+j]; //バッファからちゃんと戻されていない
}
*/

for(j=n-p+1; j<n;j++){//上を下にシャッフル　
int_arr[j-c] = int_arr[j]; 
counter = j;
 }

counter ++; //一番上までカウンタを持っていき、あとでバッファのサイズ分だけ引く

/*
puts("上から下にシャッフル"); //test
for(i = 0;i<n;i++){ 
printf("%d",int_arr[i]);
puts("");
}
*/

//printf("counterは%dです.\n",counter);
//printf("array_countは%dです.\n",array_count);

for(j=counter-array_count;j<n;j++){
 int_arr[j]=buffer[j-counter+array_count]; //バッファからうまく戻っていない
}

/*
puts("バッファから回復");
for(i = 0;i<n;i++){
printf("%d",int_arr[i]);
puts("");
}

puts("");
*/
}
    
printf("%d\n",int_arr[n-1]);

}
/*
}while(0);
*/
return 0;
}
