#include <stdio.h>
#include <string.h>
#define N 100000
char A[N],B[N];
int A1[N],B1[N];
void quicksort(int p, int r);
int partition(int p,int r);
int isStable(char in[N],char out[N],int in1[N],int out1[N],int n);
void merge(int A[N],int left,int mid,int right);
void mergeSort(int A[N],int left,int right);
int main(){
  int i,n,stable=1;
scanf("%d",&n);
 for(i=0;i<n;i++){
   scanf(" %c %d",&A[i],&A1[i]);
   B[i]=A[i];
   B1[i]=A1[i];
 }
 mergeSort(A1,0,n);
 quicksort(0,n-1);
 for ( i = 0; i < n; i++ ){
    if ( A[i] != B[i] ) stable = 0;
  }
 
  if ( stable == 1 ) printf("Stable\n");
  else printf("Not stable\n");
 
  /* if(isStable(&A[0],&B[0],&A1[0],&B1[0],n)==0) printf("Not stable\n");
     else printf("Stable\n");*/
 for(i=0;i<n;i++){
   printf("%c %d\n",B[i],B1[i]);
   }
 return 0;
}

void quicksort(int p, int r){
  int q;
  if (p < r){
    q = partition(p, r);
    quicksort(p, q-1);
    quicksort(q+1, r);
  }
}
int partition(int p,int r){
  int i,j,x,change1;
  char change; 
  x =B1[r];
  i = p-1;
  for(j = p;j<r;j++){
    if(B1[j]<=x){
      i = i+1;
      change=B[i];
      B[i]= B[j];
      B[j]=change;

      change1=B1[i];
      B1[i]= B1[j];
      B1[j]=change1;
    }
  }
  change=B[i+1];
  B[i+1]=B[r];
  B[r]=change;
  
  change1=B1[i+1];
  B1[i+1]=B1[r];
  B1[r]=change1;
  
  return i+1;
}

int isStable(char in[N],char out[N],int in1[N],int out1[N],int n){
  
  int i,j,a,b;
  
  for(i=0;i<n;i++){
    for(j=i+1;j<n;j++){
      for(a=0;a<n;a++){
	for(b=a+1;b<n;b++){
	  if(in1[i]==in1[j] && in[i]==out[b] && in[j] == out[a] && in1[i]==out1[b] && in1[j] == out1[a]){
	    return 0;
	  }
	}
      }
    }
  }
  return 1;
}
void merge(int A[N],int left,int mid,int right){
  int L[N],R[N];
  int n1,n2,i,j,k;
  n1 = mid - left;
  n2 = right - mid;
  for(i = 0;i<n1;i++){
    L[i] = A[left + i];
  }
  for(i=0;i<n2;i++){
    R[i] = A[mid + i];
  }
  L[n1] =1000000000;
  R[n2] =1000000000;
  i = 0;
  j = 0;
  for(k = left;k<right;k++){
    if(L[i] <= R[j]){
      A[k] = L[i];
      i = i + 1;
    }
    else{ 
      A[k] = R[j];
      j = j + 1;
    }
  }
}
void mergeSort(int A[N],int left,int right){
  int mid;
  if(left+1 < right){
    mid = (left + right)/2;
    mergeSort(A,left, mid);
    mergeSort(A,mid, right);
    merge(A,left, mid, right);
  }
}