#include<stdio.h>

typedef struct{
  char m[2];
  int n;
  int o;
} Data;

int partition(Data *A,int p,int r)
{
  int i,j,a;
  Data x;
  a=A[r].n;
  i=p-1;
  for(j=p;j<r;j++)
    {
      if(A[j].n<=a)
	{
	  i++;
	  x=A[i];
	  A[i]=A[j];
	  A[j]=x;
	}
    }
  x=A[i+1];
  A[i+1]=A[r];
  A[r]=x;
  return i+1;
}

void quicksort(Data *A,int p,int r)
{
  int q;
  if(p>r)
    {
      q=partition(A,p,r);
      quicksort(A,p,p-1);
      quicksort(A,q+1,r);
    }
}

int main()
{
  Data A[100000];
  int la,i,j,v=0;

  scanf("%d",&la);
  for(i=0;i<la;i++)
    {
      scanf("%s %d",A[i].m,&A[i].n);
      A[i].o=i+1;
    }
  quicksort(A,0,la-1);
  for(i=0;i<la;i++)
    {
      if(A[i].o>A[i+1].o&&A[i].n==A[i+1].n)
	{
	  v++;
	  break;
	}
    }
  if(v==0)
    {
      printf("Stable\n");
    }
  else
    {
      printf("Not stable\n");
    }
  for(i=0;i<la;i++)
    {
      printf("%s %d\n",A[i].m,A[i].n);
    }
  return 0;
}
	       
    
	  