#include<iostream>
#include<vector>
using namespace std;
const int N=2<<10;
vector<int>TLB;
const int pagelen=N;
struct Pagetable
{
int Pagenum;
int Framenum;
}Page[N];
//int top=0,rear=100;
bool same(int num){
for(int i=0;i<=TLB.size();i++)
{
if(num==TLB[i]){
TLB.erase(TLB.begin()+i);
TLB.push_back(num);
return true;
}
}
return false;
}
void push(int num){
TLB.push_back(num);
}
void print()
{
vector<int>::iterator it;
for(it=TLB.begin();it!=TLB.end();++it)
cout<<*it<<" ";
cout<<endl;
}
int pop(){
int x=TLB.front();
TLB.erase(TLB.begin());
return x;
}
int main(){
int num;
for(int i=0;i<100;i++){
Page[i].Pagenum=i;
Page[i].Framenum=i+1;
}
int t=0,A,L,D,n;
cin>>n;
while(cin>>A>>L){
num=A/L,D=A%L;
if(t==0)
{
push(num);
t++;
}
else
{
if(TLB.size()==n)
{
if(!same(num))
{
push(num);
int M=Page[num].Framenum*L+D;
cout<<"页面"<<pop()<<"被"<<"页面"<<num<<"置换"<<endl;
cout<<M<<endl;
}
}
else
{
if(!same(num)) push(num);
}
}
// print();
}
// while(!TLB.empty()){
// cout<<pop()<<endl;
// }
return 0;
}