#include<string>
#include<cctype>
#include<iostream>
#include<utility>
#include <functional>
#include<vector>
using namespace std;
/*parser<pair<T1, T2>> seq(parser<T1> f1, parser<T2> f2) {
return[=](string &s, pair<T1, T2> &out) {
string w = s;
T1 a; T2 b;
if (!f1(s, a)) {
s = w;
return false;
}
if (!f2(s, b)) {
s = w;
return false;
}
out.first = a;
out.second = b;
return true;
};
}*/
/*
int main() {
string s;
cin >> s;
int a;
pair<int, vector<pair<char, int>>> soul;
if (star(s, soul)) {
a = soul.first;
for (auto v : soul.second) {
if (v.second == '+') a += v.first;
if (v.second == '-') a -= v.first;
}
}
cout << a << endl;
system("pause");
}*/
bool getint(string &s, int &a)
{
int ret = 0;
if (s.size() == 0 || !isdigit(s[0]))
return false;
for (int i = 0, n = (int)s.size(); i < n; i++) {
if (isdigit(s[i]))
ret = ret * 10 + s[i] - '0';
else
{
s = s.substr(i);
a = ret;
return true;
}
}
s = "";
a = ret;
return true;
}
bool getop(string &s, char &a)
{
if (s.size() == 0 || !isgraph(s[0]))
return false;
switch (s[0])
{
case '+':
a = '+';
s = s.substr(1);
return true;
break;
case '-':
a = '-';
s = s.substr(1);
return true;
break;
case '*':
a = '*';
s = s.substr(1);
return true;
break;
case '/':
a = '/';
s = s.substr(1);
return true;
default:
return false;
break;
}
}
template<typename T>
auto star=[](auto f1) {
return [=](string &s,vector<T> &out) {
T a;
while (f1(s,a)) {
out.push_back(a);
}
return true;
};
};
auto seq = [](auto f1, auto f2) {
return [=](string &s, auto &out) {
string w = s;
decltype(out.first) a;
decltype(out.second) b;
if (!f1(s, a)) {
s = w;
return false;
}
if (!f2(s, b)) {
s = w;
return false;
}
out.first = a;
out.second = b;
return true;
};
};
/*template<typename T>
auto stl = [](auto f1, auto f2) {
return[=](string &s, pair<int,vector<T>> &out) {
decltype(out.first) b;
decltype(out.second) q;
decltype(out) a;
string w = s;
if (!f1(s, b)) {
s = w;
return false;
}
a.first = b;
if (!f2(s, q)) {
s = w;
return false;
}
a.second =q;
out = a;
};
};*/
int main()
{
string s;
cin >> s;
auto expr =seq(getint, star<pair<char,int>>(seq(getop, getint)));
pair <int, vector<pair<char, int>>> result;
expr(s, result);
cout << result.first << endl;
int a = result.first;
for (auto x : result.second) {
if (x.first == '+') a += x.second;
if (x.first == '-') a -= x.second;
}
cout << a << endl;
system("pause");
return 0;
}