#include<map>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
map<char,int> a;
map<pair<char,int>,int> b;
int fn(string s){
  if(s[0]>='0'&&s[0]<='9'){
    return atoi(s.c_str());
  }else{
    if(a.count(s[0])){
      int p=fn(s.substr(2,s.length()-3).c_str());
      if(p>=0&&p<a[s[0]]){
	if(b.count(make_pair(s[0],p)))
	  return b[make_pair(s[0],p)];
      }
    }
  }
  return -1;
}
int main(){
  int h,i;
  string s;
  cin>>s;
  while(s[0]!='.'){
    a.clear();
    b.clear();
    h=0;
    for(i=1;s[0]!='.';i++){
      if(s.find('=')==string::npos){
	a[s[0]]=atoi(s.substr(2,s.length()-3).c_str());
      }else{
	if(a.count(s[0])){
	  int p=fn(s.substr(2,s.find('=')-3));
	  if(p>=0&&p<a[s[0]]){
	    int q=fn(s.substr(s.find('=')+1,s.length()-s.find('=')-1));
	    if(q>=0){
	      b[make_pair(s[0],p)]=q;   
	    }else{
	      if(h==0)
		h=i;
	    }
	  }else{
	    if(h==0)
	      h=i;
	  }
	}else{
	  if(h==0)
	    h=i;
	}
      }
      cin>>s;
    }
    cout<<h<<endl;
    cin>>s;
  }
  return 0;
}