#include<stdio.h>

typedef struct {
  int x;
  char c;
  int num;
}structer;

structer array[10001];

int def1(structer* A,int nump,int r){

  structer k = array[r], tmp;
  int i = nump - 1,j;
  for(j = nump;j < r;j++){
    if(array[j].x <= k.x){
      i++;
      tmp = array[i];
      array[i] = array[j];
      array[j] = tmp;
    }
  }
    tmp = array[i+1];
    array[i+1] = array[r];
    array[r] = tmp;
    return i + 1;
}

void def2(structer* A,int nump,int r){
	int numq;
	if(nump < r){
	numq=def1(A,nump,r);
	def2(A,nump,numq - 1);
	def2(A,numq+ 1,r);
 }
}

int main(){
	int i, k ;
	int num,flag=0;
  scanf("%d",&num);

	for(i=0;i<num;i++){

		scanf(" %c %d",&array[i].c,&array[i].x);

		array[i].num=i;
	}
  def2(array,0,num-1);
	for(i = 1;i < num;i++){
		if(array[i].x == array[i-1].x){
			if(array[i].num < array[i-1].num)
			flag=-1;
    }

  }
  if(flag==0)printf("Stable\n");

	else printf("Not stable\n");

	for(i = 0;i < num;i++){
    printf("%c %d\n",array[i].c,array[i].x);
  }



  return 0;
}