#include <algorithm>
#include <cmath>
#include <cstdint>
#include <iomanip>
#include <iostream>
#include <limits>
#include <numeric>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
using i32 = std::int32_t;
using i64 = std::int64_t;
using u32 = std::uint32_t;
using u64 = std::uint64_t;
using pii = std::pair<i32, i32>;
using pll = std::pair<i64, i64>;
using vi = std::vector<i32>;
using vll = std::vector<i64>;
using vpii = std::vector<pii>;
using vpll = std::vector<pll>;
void solve();
int main()
{
std::cin.tie(nullptr)->sync_with_stdio(false);
solve();
}
std::string get_number_output(i32 n)
{
if (n < 0)
{
return "(" + std::to_string(n) + ")";
}
return std::to_string(n);
}
void solve()
{
i32 a, b;
char opt;
while (std::cin >> a >> b >> opt)
{
i32 result;
if (opt == '+')
{
result = a + b;
}
else if (opt == '-')
{
result = a - b;
}
else if (opt == '*')
{
result = a * b;
}
else if (opt == '/')
{
result = a / b;
}
else
{
result = a % b;
}
std::cout << a << ' ' << opt << ' ' << get_number_output(b) << " = " << result << std::endl;
}
}