#include<iostream>
#include<string>
#include<map>
int main( ) {
int x, ans, unk;
char sign;
std:: string s, cmnd;
std:: map < std:: string , int > namtonum;
std:: map < int , std:: string > numtonam;
while ( std:: cin >> cmnd) {
if ( cmnd == "def" ) {
s.clear ( ) ;
std:: cin >> s>> x;
if ( namtonum.count ( s) ) namtonum.erase ( s) ; /*если слово уже определено - удаляем его*/
if ( numtonam.count ( x) ) numtonam.erase ( x) ; /*аналогично поступаем с числом*/
namtonum[ s] = x; numtonam[ x] = s;
}
else if ( cmnd == "calc" ) {
ans = 0 ; unk = 0 ; sign = '+' ; /*в ans будем записывать значение выражения.*/
while ( sign ! = '=' ) {
s.clear ( ) ;
std:: cin >> s;
while ( s == "+" || s == "-" ) { /*костыль на случай если первым идёт + или -*/
if ( s == "+" ) std:: cin >> s;
if ( s == "-" ) { sign = '-' ; std:: cout << s; std:: cin >> s; }
}
if ( namtonum.count ( s) ) {
if ( sign == '-' ) ans - = namtonum[ s] ;
else ans + = namtonum[ s] ;
}
else unk = 1 ; /*если unk == 1 то на выходе "unknown"*/
std:: cin >> sign;
std:: cout << s<< " " << sign<< ' ' ;
}
if ( numtonam.count ( ans) && unk == 0 )
std:: cout << numtonam[ ans] << '\n ' ;
else printf ( "unknown\n " ) ;
}
else if ( cmnd == "clear" ) { namtonum.clear ( ) ; numtonam.clear ( ) ; }
cmnd.clear ( ) ;
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8bWFwPgoKCgppbnQgbWFpbigpIHsKICAgIGludCB4LCBhbnMsIHVuazsKICAgIGNoYXIgc2lnbjsKICAgIHN0ZDo6c3RyaW5nIHMsIGNtbmQ7CiAgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgaW50PiBuYW10b251bTsKICAgIHN0ZDo6bWFwPGludCwgc3RkOjpzdHJpbmc+IG51bXRvbmFtOwogICAgd2hpbGUoc3RkOjpjaW4+PmNtbmQpewogICAgICAgIGlmKGNtbmQgPT0gImRlZiIpewogICAgICAgICAgICBzLmNsZWFyKCk7CiAgICAgICAgICAgIHN0ZDo6Y2luPj5zPj54OwogICAgICAgICAgICBpZihuYW10b251bS5jb3VudChzKSluYW10b251bS5lcmFzZShzKTsgLyrQtdGB0LvQuCDRgdC70L7QstC+INGD0LbQtSDQvtC/0YDQtdC00LXQu9C10L3QviAtINGD0LTQsNC70Y/QtdC8INC10LPQviovCiAgICAgICAgICAgIGlmKG51bXRvbmFtLmNvdW50KHgpKW51bXRvbmFtLmVyYXNlKHgpOyAvKtCw0L3QsNC70L7Qs9C40YfQvdC+INC/0L7RgdGC0YPQv9Cw0LXQvCDRgSDRh9C40YHQu9C+0LwqLwogICAgICAgICAgICBuYW10b251bVtzXSA9IHg7IG51bXRvbmFtW3hdID0gczsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjbW5kID09ICJjYWxjIil7CiAgICAgICAgICAgIGFucyA9IDA7IHVuayA9IDA7IHNpZ24gPSAnKyc7IC8q0LIgYW5zINCx0YPQtNC10Lwg0LfQsNC/0LjRgdGL0LLQsNGC0Ywg0LfQvdCw0YfQtdC90LjQtSDQstGL0YDQsNC20LXQvdC40Y8uKi8KICAgICAgICAgICAgd2hpbGUoc2lnbiAhPSAnPScpewogICAgICAgICAgICAgICAgcy5jbGVhcigpOyAKICAgICAgICAgICAgICAgIHN0ZDo6Y2luPj5zOwogICAgICAgICAgICAgICAgd2hpbGUocyA9PSAiKyIgfHwgcyA9PSAiLSIpey8q0LrQvtGB0YLRi9C70Ywg0L3QsCDRgdC70YPRh9Cw0Lkg0LXRgdC70Lgg0L/QtdGA0LLRi9C8INC40LTRkdGCICsg0LjQu9C4IC0qLwogICAgICAgICAgICAgICAgICAgIGlmKHMgPT0gIisiKXN0ZDo6Y2luPj5zOwogICAgICAgICAgICAgICAgICAgIGlmKHMgPT0gIi0iKXtzaWduID0gJy0nOyBzdGQ6OmNvdXQ8PHM7IHN0ZDo6Y2luPj5zO30KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKG5hbXRvbnVtLmNvdW50KHMpKXsKICAgICAgICAgICAgICAgICAgICBpZihzaWduID09ICctJylhbnMgLT0gbmFtdG9udW1bc107CiAgICAgICAgICAgICAgICAgICAgZWxzZSBhbnMgKz0gbmFtdG9udW1bc107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHVuayA9IDE7IC8q0LXRgdC70LggdW5rID09IDEg0YLQviDQvdCwINCy0YvRhdC+0LTQtSAidW5rbm93biIqLwogICAgICAgICAgICAgICAgc3RkOjpjaW4+PnNpZ247CiAgICAgICAgICAgICAgICBzdGQ6OmNvdXQ8PHM8PCIgIjw8c2lnbjw8JyAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKG51bXRvbmFtLmNvdW50KGFucykgJiYgdW5rID09IDApCiAgICAgICAgICAgICAgICBzdGQ6OmNvdXQ8PG51bXRvbmFtW2Fuc108PCdcbic7CiAgICAgICAgICAgIGVsc2UgcHJpbnRmKCJ1bmtub3duXG4iKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjbW5kID09ICJjbGVhciIpe25hbXRvbnVtLmNsZWFyKCk7IG51bXRvbmFtLmNsZWFyKCk7fQogICAgICAgIGNtbmQuY2xlYXIoKTsKICAgIH0KfQ==
stdin
ZGVmIGZvbyAzCmNhbGMgZm9vICsgYmFyID0KZGVmIGJhciA3CmRlZiBwcm9ncmFtbWluZyAxMApjYWxjIGZvbyArIGJhciA9CmRlZiBpcyA0CmRlZiBmdW4gOApjYWxjIHByb2dyYW1taW5nIC0gaXMgKyBmdW4gPQpkZWYgZnVuIDEKY2FsYyBwcm9ncmFtbWluZyAtIGlzICsgZnVuID0KY2xlYXIK
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