#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
//+;-;*;
//int + obj
class A
{
int a;
int b;
public :
A(){a=0;b=0;}
A(int a,int b)
{
this->a=a;
this->b=b;
}
void setA(int x){a=x;}
void setB(int x){b=x;}
A operator+(const int x)
{
return A(a+x,b);
}
friend A operator+(const int x , A ax );
friend ostream &operator<<(ostream &out,const A &Aa);
friend istream &operator>>(istream &in,A &Aa);
A operator()(int x,int y,int z)__________()
{
A ax;
ax.a=x+y;
ax.b=y+z;
return ax;
/*
this->a=x+y;
this->b=y+z;
return *this;
*/
}
A operator+(const A&Aa)
{
A aa;
aa.a=this->a+Aa.a;
aa.b=this->b+Aa.b;
return aa;
}
A operator*(const A&Aa)
{
A aa;
aa.a=this->a*Aa.a;
aa.b=this->b*Aa.b;
return aa;
}
A operator-(const A&Aa)
{
A aa;
aa.a=this->a-Aa.a;
aa.b=this->b-Aa.b;
return aa;
}
A operator-()
{
a=-a;
b=-b;
return A(a,b);
}
//qianzhui
A operator++()
{
a+=1;
b+=1;
return *this;
}
//houzhui
A operator++(int)
{
A aa(a,b);
a++;
b++;
return aa;
}
ostream &operator<<(ostream &os)
{
os<<this->a<<" "<<this->b;
return os;
}
istream &operator>>(istream &is)
{
is>>this->a>>this->b;
return is;
}
int getans()
{
return a*b;
}
int geta()
{
return a;
}
int getb()
{
return b;
}
};
istream &operator>>(istream &in,A &Aa)
{
in>>Aa.a>>Aa.b;
return in;
}
ostream &operator<<(ostream &out,const A &Aa)
{
out<<Aa.a<<" "<<Aa.b;
return out;
}
A operator+(const int x ,A ax )
{
return ax+x;
}
int main()
{
A a;
A b;
A c;
a.setA(71);
a.setB(61);
b.setA(11);
b.setB(61);
a=b-a;
a=a+100;
a=100+a;
a=a.operator+(b);
c=a(1,2,3);
//a<<cout<<endl;
cout<<c<<endl;
//a>>cin;
//cin>>a;
//cout<<a.getb()<<endl<<a.geta()<<endl;
//cout<<c.getans()<<endl;
}