#include<stdio.h>
#include<stdlib.h>
#define N 1e5

typedef struct{
  char c;
  int e;
}card;

void quicksort(card*, int, int);
int isstable(card *,card *, int);
int partition(card*, int, int);


void quicksort(card *A, int p, int r){

    if(p<r){
        int q=partition(A, p, r);
        quicksort(A, p, q-1);
        quicksort(A, q+1, r);
    }return;
}

int isstable(card *in, card *out, 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(in[i].e==in[j].e&&in[i].e==out[b].e&&in[j].e==out[a].e
                    &&in[i].c==out[b].c&&in[j].c==out[a].c) return 0;
                }
            }
        }
    }return 1;
}

int partition(card *A, int p, int r){

  int x=A[r].e, i=p-1, j;
  card tmp;

  for(j=p;j<r;j++){
      if(A[j].e<=x){
      i++;
      tmp=A[i]; A[i]=A[j]; A[j]=tmp;
    }
  }tmp=A[i+1]; A[i+1]=A[r]; A[r]=tmp;
  return i+1;
}

int main(){
  int i, j, n;
  card *t, *a;
  t = (card *)malloc(sizeof(card)*N);
  a = (card *)malloc(sizeof(card)*N);

  scanf("%d", &n);

  for(i=0;i<n;i++) scanf("%*c%c%d", &t[i].c, &t[i].e);

  for(i=0;i<n;i++){
    a[i]=t[i];
  }

  quicksort(a,0,n-1);

  if(isstable(t,a,n)==1) printf("Stable\n");
  else printf("Not stable\n"); 

  for(i=0;i<n;i++) printf("%c %d\n",a[i].c,a[i].e);

  return 0;
}
