/* 用结构体数组模拟栈,结构体中保存当前min与max的值 */ #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int X = 65537; int n,top; struct node { int max,min; }stack[X]; int main() { freopen("sum.in","r",stdin); char s[10]; int x; int ncase = 0; while(cin>>n,n) { printf("Case %d\n",++ncase); top = 0; for(int i=0;i<n;i++) { scanf("%s",s); if(s[0]=='m') { if(!top) printf("null\n"); else { if(s[1]=='a') printf("%d\n",stack[top-1].max); else printf("%d\n",stack[top-1].min); } } else { if(s[1]=='o') { if(top) top--; } else { scanf("%d",&x); if(top) { stack[top].max = max(x,stack[top-1].max); stack[top].min = min(x,stack[top-1].min); } else stack[top].min = stack[top].max = x; top++; } } } } return 0; }