#include <cstdlib>
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
void show(double a,double b,double c,char op) { cout<<a<<' '<<op<<' '<<b<<" = "<<c<<endl; }
typedef void fun(double a,double b);
struct rec_t { const string cmd; fun *call; };
/*
rec_t tb[]=
{
{"+",[](double a,double b){ show(a,b,a+b,'+'); }},
{"*",[](double a,double b){ show(a,b,a*b,'*'); }},
{"stop",[](double a,double b){ cout<<"nara"<<endl; exit(0); }},
{"",[](double a,double b){ cout<<"Nieznane polecenie"<<endl; }},
};
*/
vector<rec_t> tb=
{
{
{"+",[](double a,double b){ show(a,b,a+b,'+'); }},
{"*",[](double a,double b){ show(a,b,a*b,'*'); }},
{"stop",[](double a,double b){ cout<<"nara"<<endl; exit(0); }},
{"",[](double a,double b){ cout<<"Nieznane polecenie"<<endl; }},
}
};
int main()
{
char op;
string cmd;
double a,b;
while(true)
{
if(cin>>a>>op>>b) cmd=string(1,op);
else
{
cin.clear();
cin>>cmd;
}
find_if(begin(tb),end(tb),[&cmd](auto r){ return (!r.cmd.size())||(r.cmd==cmd); })->call(a,b);
getline(cin,cmd);
}
}
I2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc2hvdyhkb3VibGUgYSxkb3VibGUgYixkb3VibGUgYyxjaGFyIG9wKSB7IGNvdXQ8PGE8PCcgJzw8b3A8PCcgJzw8Yjw8IiA9ICI8PGM8PGVuZGw7IH0KCnR5cGVkZWYgdm9pZCBmdW4oZG91YmxlIGEsZG91YmxlIGIpOwpzdHJ1Y3QgcmVjX3QgeyBjb25zdCBzdHJpbmcgY21kOyBmdW4gKmNhbGw7IH07Ci8qCnJlY190IHRiW109CnsKCXsiKyIsW10oZG91YmxlIGEsZG91YmxlIGIpeyBzaG93KGEsYixhK2IsJysnKTsgfX0sCgl7IioiLFtdKGRvdWJsZSBhLGRvdWJsZSBiKXsgc2hvdyhhLGIsYSpiLCcqJyk7IH19LAoJeyJzdG9wIixbXShkb3VibGUgYSxkb3VibGUgYil7IGNvdXQ8PCJuYXJhIjw8ZW5kbDsgZXhpdCgwKTsgfX0sCgl7IiIsW10oZG91YmxlIGEsZG91YmxlIGIpeyBjb3V0PDwiTmllem5hbmUgcG9sZWNlbmllIjw8ZW5kbDsgfX0sCn07CiovCgp2ZWN0b3I8cmVjX3Q+IHRiPQp7Cgl7CgkJeyIrIixbXShkb3VibGUgYSxkb3VibGUgYil7IHNob3coYSxiLGErYiwnKycpOyB9fSwKCQl7IioiLFtdKGRvdWJsZSBhLGRvdWJsZSBiKXsgc2hvdyhhLGIsYSpiLCcqJyk7IH19LAoJCXsic3RvcCIsW10oZG91YmxlIGEsZG91YmxlIGIpeyBjb3V0PDwibmFyYSI8PGVuZGw7IGV4aXQoMCk7IH19LAoJCXsiIixbXShkb3VibGUgYSxkb3VibGUgYil7IGNvdXQ8PCJOaWV6bmFuZSBwb2xlY2VuaWUiPDxlbmRsOyB9fSwKCX0KfTsKCmludCBtYWluKCkKewoJY2hhciBvcDsKCXN0cmluZyBjbWQ7Cglkb3VibGUgYSxiOwogICAgd2hpbGUodHJ1ZSkKICAgIHsKICAgIAlpZihjaW4+PmE+Pm9wPj5iKSBjbWQ9c3RyaW5nKDEsb3ApOwogICAgCWVsc2UKICAgIAl7CiAgICAJCWNpbi5jbGVhcigpOwogICAgCQljaW4+PmNtZDsKICAgIAl9CiAgICAJZmluZF9pZihiZWdpbih0YiksZW5kKHRiKSxbJmNtZF0oYXV0byByKXsgcmV0dXJuICghci5jbWQuc2l6ZSgpKXx8KHIuY21kPT1jbWQpOyB9KS0+Y2FsbChhLGIpOwoJCWdldGxpbmUoY2luLGNtZCk7CiAgICB9Cn0=