#include <iostream>
#include <map>
#include <cstdlib>
#include <sstream>
using namespace std;
int main( ) {
map< string,int > variables;
string line[ 2000 ] ;
cin >> line[ 0 ] ;
string line2;
int i;
while ( cin >> line2) {
bool clear = false ;
if ( line[ 0 ] == "clear" ) {
clear = true ;
line[ 0 ] = line2;
goto END1;
}
i = 1 ;
line[ 1 ] = line2;
while ( line[ i] ! = "def" && line[ i] ! = "clear" && line[ i] ! = "calc" ) {
i++ ;
cin >> line[ i] ;
}
if ( line[ 0 ] == "clear" ) {
goto END1;
} else if ( line[ 0 ] == "def" ) {
char * line1 = & ( line[ 2 ] [ 0 ] ) ;
variables[ line[ 1 ] ] = atoi ( line1) ;
} else {
bool unknown = false ;
int sum = 0 ;
int j = 1 ;
sum + = variables[ line[ j] ] ;
j++ ;
A:
if ( line[ j] == "+" ) {
string temp = line[ j + 1 ] ;
char * temp1 = & temp[ 0 ] ;
map< string,int > :: iterator it = variables.find ( temp1) ;
if ( it ! = variables.end ( ) )
sum + = variables[ line[ j + 1 ] ] ;
else {
unknown = true ;
goto B;
}
} else if ( line[ j] == "-" ) {
string temp = line[ j+ 1 ] ;
char * temp2 = & temp[ 0 ] ;
map< string,int > :: iterator it = variables.find ( temp2) ;
if ( it ! = variables.end ( ) )
sum - = variables[ line[ j + 1 ] ] ;
else {
unknown = true ;
goto B;
}
} else if ( line[ j] == "=" ) {
goto B;
}
j + = 2 ;
goto A;
B:
string h = "" ;
for ( int k = 1 ; k < i; k++ ) {
h + = line[ k] + " " ;
}
if ( unknown == false ) {
string qwe;
for ( map< string,int > :: iterator it = variables.begin ( ) ; it ! = variables.end ( ) ; it++ ) {
int x = it- > second;
if ( x == sum) {
qwe = it- > first;
goto ASD;
}
}
goto UNKNOWN;
ASD:
stringstream ss;
ss << qwe;
h + = ss.str ( ) ;
} else {
UNKNOWN:
h + = "unknown" ;
}
cout << h << endl;
}
line[ 0 ] = line[ i] ;
END1:
if ( clear)
variables.clear ( ) ;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPHNzdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCW1hcDxzdHJpbmcsaW50PiB2YXJpYWJsZXM7CgkKCXN0cmluZyBsaW5lWzIwMDBdOwoJY2luID4+IGxpbmVbMF07CglzdHJpbmcgbGluZTI7CglpbnQgaTsKCQoJd2hpbGUoY2luID4+IGxpbmUyKSB7CgkJYm9vbCBjbGVhciA9IGZhbHNlOwoJCWlmKGxpbmVbMF0gPT0gImNsZWFyIikgewoJCQljbGVhciA9IHRydWU7CgkJCWxpbmVbMF0gPSBsaW5lMjsKCQkJZ290byBFTkQxOwoJCX0KCQlpID0gMTsKCQlsaW5lWzFdID0gbGluZTI7CgkJCgkJd2hpbGUobGluZVtpXSAhPSAiZGVmIiAmJiBsaW5lW2ldICE9ICJjbGVhciIgJiYgbGluZVtpXSAhPSAiY2FsYyIpIHsKCQkJaSsrOwoJCQljaW4gPj4gbGluZVtpXTsKCQl9CgkJCgkJaWYobGluZVswXSA9PSAiY2xlYXIiKSB7CgkJCWdvdG8gRU5EMTsKCQl9IGVsc2UgaWYobGluZVswXSA9PSAiZGVmIikgewoJCQljaGFyKiBsaW5lMSA9ICYobGluZVsyXVswXSk7CgkJCXZhcmlhYmxlc1tsaW5lWzFdXSA9IGF0b2kobGluZTEpOwoJCX0gZWxzZSB7CgkJCWJvb2wgdW5rbm93biA9IGZhbHNlOwoJCQlpbnQgc3VtID0gMDsKCQkJaW50IGogPSAxOwoJCQlzdW0gKz0gdmFyaWFibGVzW2xpbmVbal1dOwoJCQlqKys7CgkJCUE6CgkJCWlmKGxpbmVbal0gPT0gIisiKSB7CgkJCQlzdHJpbmcgdGVtcCA9IGxpbmVbaiArIDFdOwoJCQkJY2hhciogdGVtcDEgPSAmdGVtcFswXTsKCQkJCW1hcDxzdHJpbmcsaW50Pjo6aXRlcmF0b3IgaXQgPSB2YXJpYWJsZXMuZmluZCh0ZW1wMSk7CgkJCQlpZihpdCAhPSB2YXJpYWJsZXMuZW5kKCkpCgkJCQkJc3VtICs9IHZhcmlhYmxlc1tsaW5lW2ogKyAxXV07CgkJCQllbHNlIHsKCQkJCQl1bmtub3duID0gdHJ1ZTsKCQkJCQlnb3RvIEI7CgkJCQl9CgkJCX0gZWxzZSBpZihsaW5lW2pdID09ICItIikgewoJCQkJc3RyaW5nIHRlbXAgPSBsaW5lW2orMV07CgkJCQljaGFyKiB0ZW1wMiA9ICZ0ZW1wWzBdOwoJCQkJbWFwPHN0cmluZyxpbnQ+OjppdGVyYXRvciBpdCA9IHZhcmlhYmxlcy5maW5kKHRlbXAyKTsKCQkJCWlmKGl0ICE9IHZhcmlhYmxlcy5lbmQoKSkKCQkJCQlzdW0gLT0gdmFyaWFibGVzW2xpbmVbaiArIDFdXTsKCQkJCWVsc2UgewoJCQkJCXVua25vd24gPSB0cnVlOwoJCQkJCWdvdG8gQjsKCQkJCX0KCQkJfSBlbHNlIGlmKGxpbmVbal0gPT0gIj0iKSB7CgkJCQlnb3RvIEI7CgkJCX0KCQkJaiArPSAyOwoJCQlnb3RvIEE7CgkJCUI6CgkJCXN0cmluZyBoID0gIiI7CgkJCWZvcihpbnQgayA9IDE7IGsgPCBpOyBrKyspIHsKCQkJCWggKz0gbGluZVtrXSArICIgIjsKCQkJfQoJCQlpZih1bmtub3duID09IGZhbHNlKSB7CgkJCQlzdHJpbmcgcXdlOwoJCQkJZm9yKG1hcDxzdHJpbmcsaW50Pjo6aXRlcmF0b3IgaXQgPSB2YXJpYWJsZXMuYmVnaW4oKTsgaXQgIT0gdmFyaWFibGVzLmVuZCgpOyBpdCsrKSB7CgkJCQkJaW50IHggPSBpdC0+c2Vjb25kOwoJCQkJCWlmKHggPT0gc3VtKSB7CgkJCQkJCXF3ZSA9IGl0LT5maXJzdDsKCQkJCQkJZ290byBBU0Q7CgkJCQkJfQoJCQkJfQoJCQkJZ290byBVTktOT1dOOwoJCQkJQVNEOgoJCQkJc3RyaW5nc3RyZWFtIHNzOwoJCQkJc3MgPDwgcXdlOwoJCQkJaCArPSBzcy5zdHIoKTsJCgkJCX0gZWxzZSB7CgkJCQlVTktOT1dOOgoJCQkJaCArPSAidW5rbm93biI7CgkJCX0KCQkJY291dCA8PCBoIDw8IGVuZGw7CgkJfQoJCWxpbmVbMF0gPSBsaW5lW2ldOwoJCUVORDE6CgkJaWYoY2xlYXIpCgkJCXZhcmlhYmxlcy5jbGVhcigpOwoJfQoJCglyZXR1cm4gMDsKfQ==
stdin
ZGVmIGZvbyAzCmNhbGMgZm9vICsgYmFyID0KZGVmIGJhciA3CmRlZiBwcm9ncmFtbWluZyAxMApjYWxjIGZvbyArIGJhciA9CmRlZiBpcyA0CmRlZiBmdW4gOApjYWxjIHByb2dyYW1taW5nIC0gaXMgKyBmdW4gPQpkZWYgZnVuIDEKY2FsYyBwcm9ncmFtbWluZyAtIGlzICsgZnVuID0KY2xlYXIKY2FsYyBwcm9ncmFtbWluZyAtIGlzICsgZnVuID0=
def foo 3
calc foo + bar =
def bar 7
def programming 10
calc foo + bar =
def is 4
def fun 8
calc programming - is + fun =
def fun 1
calc programming - is + fun =
clear
calc programming - is + fun =