// Mtaylor
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define mp make_pair
#define endl '\n';
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
void dbg_out() { cerr << endl; }
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T) {
cerr << ' ' << H;
dbg_out(T...);
}
#define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
typedef long long ll;
const int N = 2505, E = 1e6, M = 3 * N;
#define neig(u, v, e) \
for (int e = head[u], v; (~e) && (v = to[e], 1); e = nxt[e])
int head[N], nxt[E], to[E], edgcnt, n;
int vis[N], vid = 0;
int l2r[N], r2l[M];
void addEdge(int a, int b) {
nxt[edgcnt] = head[a];
head[a] = edgcnt;
to[edgcnt] = b;
edgcnt++;
}
void init() {
memset(head, -1, n * sizeof(head[0]));
edgcnt = 0;
}
int dfs(int lid) {
if (vis[lid] == vid) return 0;
vis[lid] = vid;
neig(lid, rid, e) {
if (r2l[rid] == -1 || dfs(r2l[rid])) {
r2l[rid] = lid;
l2r[lid] = rid;
return 1;
}
}
return 0;
}
int m, x, y;
int maxMatching() {
int res = 0;
memset(r2l, -1, m * sizeof(r2l[0]));
for (int i = 0; i < n; i++) {
vid++;
res += dfs(i);
}
return res;
}
int val[N];
set<ll> s;
int a[N], b[N];
map<ll, int> pos;
vector<ll> distincts;
void solve() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i] >> b[i];
s.insert(a[i] + b[i]);
s.insert(a[i] - b[i]);
s.insert(a[i] * 1ll * b[i]);
}
m = 0;
for (auto u : s) {
distincts.pb(u);
pos[u] = m++;
}
init();
for (int i = 0; i < n; i++) {
cin >> a[i] >> b[i];
addEdge(i, pos[a[i] + b[i]]);
addEdge(i, pos[a[i] - b[i]]);
addEdge(i, pos[a[i] * 1ll * b[i]]);
}
int x = maxMatching();
if (x != n) {
cout << "impossible";
return;
}
for (int i = 0; i < n; i++) {
char op = '+';
ll v = distincts[l2r[i]];
if (v == a[i] - b[i]) {
op = '-';
} else if (v == a[i] * 1ll * b[i]) {
op = '*';
}
cout << a[i] << " " << op << " " << b[i] << " "
<< "="
<< " " << v << endl;
}
}
int main() {
// freopen("input.txt", "r", stdin);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int T;
// cin >>T;
T = 1;
while (T--) {
solve();
}
return 0;
}
Ly8gTXRheWxvcgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBlbmRsICdcbic7CiNkZWZpbmUgc3ooeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIHJhbGwoeCkgKHgpLnJiZWdpbigpLCAoeCkucmVuZCgpCnZvaWQgZGJnX291dCgpIHsgY2VyciA8PCBlbmRsOyB9CnRlbXBsYXRlIDx0eXBlbmFtZSBIZWFkLCB0eXBlbmFtZS4uLiBUYWlsPgp2b2lkIGRiZ19vdXQoSGVhZCBILCBUYWlsLi4uIFQpIHsKICAgIGNlcnIgPDwgJyAnIDw8IEg7CiAgICBkYmdfb3V0KFQuLi4pOwp9CiNkZWZpbmUgZGJnKC4uLikgY2VyciA8PCAiKCIgPDwgI19fVkFfQVJHU19fIDw8ICIpOiIsIGRiZ19vdXQoX19WQV9BUkdTX18pCnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTiA9IDI1MDUsIEUgPSAxZTYsIE0gPSAzICogTjsKCiNkZWZpbmUgbmVpZyh1LCB2LCBlKSBcCiAgICBmb3IgKGludCBlID0gaGVhZFt1XSwgdjsgKH5lKSAmJiAodiA9IHRvW2VdLCAxKTsgZSA9IG54dFtlXSkKaW50IGhlYWRbTl0sIG54dFtFXSwgdG9bRV0sIGVkZ2NudCwgbjsKaW50IHZpc1tOXSwgdmlkID0gMDsKaW50IGwycltOXSwgcjJsW01dOwoKdm9pZCBhZGRFZGdlKGludCBhLCBpbnQgYikgewogICAgbnh0W2VkZ2NudF0gPSBoZWFkW2FdOwogICAgaGVhZFthXSA9IGVkZ2NudDsKICAgIHRvW2VkZ2NudF0gPSBiOwogICAgZWRnY250Kys7Cn0KCnZvaWQgaW5pdCgpIHsKICAgIG1lbXNldChoZWFkLCAtMSwgbiAqIHNpemVvZihoZWFkWzBdKSk7CiAgICBlZGdjbnQgPSAwOwp9CgppbnQgZGZzKGludCBsaWQpIHsKICAgIGlmICh2aXNbbGlkXSA9PSB2aWQpIHJldHVybiAwOwogICAgdmlzW2xpZF0gPSB2aWQ7CiAgICBuZWlnKGxpZCwgcmlkLCBlKSB7CiAgICAgICAgaWYgKHIybFtyaWRdID09IC0xIHx8IGRmcyhyMmxbcmlkXSkpIHsKICAgICAgICAgICAgcjJsW3JpZF0gPSBsaWQ7CiAgICAgICAgICAgIGwycltsaWRdID0gcmlkOwogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQppbnQgbSwgeCwgeTsKaW50IG1heE1hdGNoaW5nKCkgewogICAgaW50IHJlcyA9IDA7CiAgICBtZW1zZXQocjJsLCAtMSwgbSAqIHNpemVvZihyMmxbMF0pKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgdmlkKys7CiAgICAgICAgcmVzICs9IGRmcyhpKTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KaW50IHZhbFtOXTsKc2V0PGxsPiBzOwppbnQgYVtOXSwgYltOXTsKbWFwPGxsLCBpbnQ+IHBvczsKdmVjdG9yPGxsPiBkaXN0aW5jdHM7CnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV0gPj4gYltpXTsKICAgICAgICBzLmluc2VydChhW2ldICsgYltpXSk7CiAgICAgICAgcy5pbnNlcnQoYVtpXSAtIGJbaV0pOwogICAgICAgIHMuaW5zZXJ0KGFbaV0gKiAxbGwgKiBiW2ldKTsKICAgIH0KICAgIG0gPSAwOwogICAgZm9yIChhdXRvIHUgOiBzKSB7CiAgICAgICAgZGlzdGluY3RzLnBiKHUpOwogICAgICAgIHBvc1t1XSA9IG0rKzsKICAgIH0KICAgIGluaXQoKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV0gPj4gYltpXTsKICAgICAgICBhZGRFZGdlKGksIHBvc1thW2ldICsgYltpXV0pOwogICAgICAgIGFkZEVkZ2UoaSwgcG9zW2FbaV0gLSBiW2ldXSk7CiAgICAgICAgYWRkRWRnZShpLCBwb3NbYVtpXSAqIDFsbCAqIGJbaV1dKTsKICAgIH0KICAgIGludCB4ID0gbWF4TWF0Y2hpbmcoKTsKICAgIGlmICh4ICE9IG4pIHsKICAgICAgICBjb3V0IDw8ICJpbXBvc3NpYmxlIjsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNoYXIgb3AgPSAnKyc7CiAgICAgICAgbGwgdiA9IGRpc3RpbmN0c1tsMnJbaV1dOwogICAgICAgIGlmICh2ID09IGFbaV0gLSBiW2ldKSB7CiAgICAgICAgICAgIG9wID0gJy0nOwogICAgICAgIH0gZWxzZSBpZiAodiA9PSBhW2ldICogMWxsICogYltpXSkgewogICAgICAgICAgICBvcCA9ICcqJzsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBhW2ldIDw8ICIgIiA8PCBvcCA8PCAiICIgPDwgYltpXSA8PCAiICIKICAgICAgICAgICAgIDw8ICI9IgogICAgICAgICAgICAgPDwgIiAiIDw8IHYgPDwgZW5kbDsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICAvLyBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaW50IFQ7CiAgICAvLyBjaW4gPj5UOwogICAgVCA9IDE7CiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==