#include <iostream>
#include <map>
#include <string>
#include <sstream>
using namespace std;
class ICommand{
public:
virtual void execute(istream &args) = 0;
};
class Add : public ICommand{
void execute(istream &args){
int a,b;
args >> a;
args >> b;
cout << "Add result:" << a + b << endl;
}
};
class Negate : public ICommand{
void execute(istream &args){
int a;
args >> a;
cout <<"Negate result:"<< -a << endl;
}
};
int main(){
map<string,ICommand*> commands;
commands["Add"] = new Add();
commands["Negate"] = new Negate();
string cmd;
while(cin >> cmd){
auto it = commands.find(cmd);
if(it!= commands.end()){
it->second->execute(cin);
}else{
cout << "Unknown command \"" << cmd << "\"." << endl;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgSUNvbW1hbmR7CnB1YmxpYzoKICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlKGlzdHJlYW0gJmFyZ3MpID0gMDsgIAp9OwoKY2xhc3MgQWRkIDogcHVibGljIElDb21tYW5kewogICAgdm9pZCBleGVjdXRlKGlzdHJlYW0gJmFyZ3MpewogICAgICAgIGludCBhLGI7CiAgICAgICAgYXJncyA+PiBhOwogICAgICAgIGFyZ3MgPj4gYjsKICAgICAgICBjb3V0IDw8ICJBZGQgcmVzdWx0OiIgPDwgIGEgKyBiIDw8IGVuZGw7CiAgICB9Cn07CgpjbGFzcyBOZWdhdGUgOiBwdWJsaWMgSUNvbW1hbmR7CiAgICB2b2lkIGV4ZWN1dGUoaXN0cmVhbSAmYXJncyl7CiAgICAgICAgaW50IGE7CiAgICAgICAgYXJncyA+PiBhOwogICAgICAgIGNvdXQgPDwiTmVnYXRlIHJlc3VsdDoiPDwgLWEgPDwgZW5kbDsKICAgIH0KfTsKCmludCBtYWluKCl7CiAgICBtYXA8c3RyaW5nLElDb21tYW5kKj4gY29tbWFuZHM7CiAgICAKICAgIGNvbW1hbmRzWyJBZGQiXSA9IG5ldyBBZGQoKTsKICAgIGNvbW1hbmRzWyJOZWdhdGUiXSA9IG5ldyBOZWdhdGUoKTsKICAgIHN0cmluZyBjbWQ7CiAgICB3aGlsZShjaW4gPj4gY21kKXsKICAgICAgICBhdXRvIGl0ID0gY29tbWFuZHMuZmluZChjbWQpOwogICAgICAgIGlmKGl0IT0gY29tbWFuZHMuZW5kKCkpewogICAgICAgICAgICBpdC0+c2Vjb25kLT5leGVjdXRlKGNpbik7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIGNvdXQgPDwgIlVua25vd24gY29tbWFuZCBcIiIgPDwgY21kIDw8ICJcIi4iIDw8IGVuZGw7CiAgICAgICAgfQogICAgfQp9