#include <bits/stdc++.h>
#include <conio.h>
using namespace std;
class Operation{
private:
int num1;
int num2;
public:
virtual int cal()=0;
int getn1(){
return num1;
}
void setn1(int n1){
num1=n1;
}
void setn2(int n2){
num2=n2;
}
int getn2(){
return num2;
}
};
class OperAdd:public Operation{
public:
int cal(){
int res=getn1()+getn2();
return res;
}
};
class OperSub:public Operation{
public:
int cal(){
int res=getn1()-getn2();
return res;
}
};
class Factory{
public:
Operation* create(char op){
Operation* oper=NULL;
switch(op){
case '+':
oper=new OperAdd();
break;
case '-':
oper=new OperSub();
break;
default:
return NULL;
}
return oper;
}
};
int main(){
int n1,n2;
cin>>n1>>n2;
char op;
cin>>op;
Factory* f=new Factory();
Operation* oper=f->create(op);
oper->setn1(n1);
oper->setn2(n2);
cout<<oper->cal()<<endl;
getch();
return 0;
}