//простое лобовое решение для проверки правильности тестов

#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;
  
const int NMAX=100000;
int a[NMAX], n=0, k;
char t;
int x;

int main() {
//  freopen("nearnum.in","r",stdin);
//  freopen("nearnum.out","w",stdout);
  scanf("%d\n",&k);
  for (int i=0; i<k; i++) {
    scanf("%c",&t);
    int j;
    switch(t) {
      case 'A' : //ADD
        scanf("%*c%*c %d\n", &x);
        for (j=0; j<n;j++){
          if (a[j]==x) break;
          if (a[j]>x) j=n;
        }
        if(j<n) break; //элемент и так во множестве
        for (j=n-1; j>=0 && a[j]>x; j--) a[j+1]=a[j];
        a[j+1]=x; 
        n++;
        break;
      case 'D' : //DEL
        scanf("%*c%*c %d\n", &x);
        for (j=0; j<n;j++){
          if (a[j]==x) break;
          if (a[j]>x) {j=n; break;}
        }
        if(j==n) break; //элемента нет
        for (;j<n-1;j++) a[j]=a[j+1];        
        n--;
        break;
      case 'F' : //FIND
        scanf("%*c%*c%*c\n");
        if (n<2) {
         cout << "ERROR\n";
         return 1;
        }
        int opt = a[1]-a[0];
        for (j=2; j<n; j++)
          if (a[j]-a[j-1]<opt)
            opt = a[j]-a[j-1];
        cout << opt << endl;
    }
  }
  return 0;
}

