#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node{
int index;
char name[55];
int grade;
}num[400],tmp[400];
int pos[400];
bool cmp(node a,node b){
if(a.grade!=b.grade) return a.grade>b.grade;
return a.index<b.index;
}
int n;
int main(){
while(~scanf("%d",&n)){
for(int i=0;i<n;i++){
scanf("%s%d",num[i].name,&num[i].grade);
num[i].index=i;
}
sort(num,num+n,cmp);
bool flag=true;
for(int i=0;i<n;i++){
scanf("%s%d",tmp[i].name,&tmp[i].grade);
if(!i) continue;
if(tmp[i].grade>tmp[i-1].grade) flag=false;
}
if(!flag){
printf("Error\n");
for(int i=0;i<n;i++) printf("%s %d\n",num[i].name,num[i].grade);
}
else {
flag=true;
for(int i=0;i<n;i++) if(strcmp(tmp[i].name,num[i].name)!=0||tmp[i].grade!=num[i].grade)flag=false;
if(flag) printf("Right\n");
else{
printf("Not Stable\n");
for(int i=0;i<n;i++) printf("%s %d\n",num[i].name,num[i].grade);
}
}
}
return 0;
}