#include<iostream>
#include<string>
using namespace std;
int main() {
string s;
getline(cin, s);//getline()可以获取空格等字符,而>>不能,加#include<string>不然报错
//int a, b;一开始没有初始化a,b 报错
int a = 0;
int b = 0;
int c=0,x = 0;//记录a,b是否为数字字符,当为数字字符的时候为0;是其他的时候更改值为1;
int base = 1;//位数
for (int i = 0; i < s.length(); i++) {
if (s[i] == ' ')//a和b 的分隔点,i是空格所在位置
{
if (i == 0 && s[i] == ' ')
c = 1;
else {
for (int j = i-1; j >=0; j--) {
if (s[j] > '9' || s[j] < '0')//当字符不是数字的时候
{
c = 1;//记录不是数字,方便分类
break;//及时退出循环
}
else
{
a += base * (s[j] - '0');//小括号内部字符转换数字,外部转换为十进制数
base *= 10;//使下一个循环的数字其转换为对应十进制的整数
}
}
}
base = 1;//更新base
//计算b的
/*for (int d = i + 1; d < s.length(); d++) {
if (s[d] > '9' || s[d] < '0')
{
x = 1;//记录不是数字
break;
}
else
{
b += base * (s[d] - '0');
base *= 10;
}
*/
//这一段导致b 的顺序搞反了
if (i == s.length() - 1 && s[i] == ' ')
x = 1;
else
{
for (int d = s.length() - 1; d > i; d--) {
if (s[d] > '9' || s[d] < '0')
{
x = 1;//记录不是数字
break;
}
else
{
b += base * (s[d] - '0');
base *= 10;
}
}
}
break;//记得及时终止
}
}
if (a > 1000 || a < 0)
c = 1;
if (b > 1000 || b < 0)
x = 1;
if (c) //c=1,a不是数字
{
if (x )
cout << "?" << " " << "+" << " " << "?" << " " << "=" << " " << "?" << endl;
else
cout << "?" << " " << "+" << " " << b << " " << "=" << " " << "?" << endl;
}
else
if (x)//b不是数字
cout << a << " " << "+" << " " << "?" << " " << "=" << " " << "?" << endl;
else
cout << a << " " << "+" << " " << b << " " << "=" << " " << a+b<< endl;
}