#include <bits/stdc++.h>
using namespace std;
int a[10][10][200];
int t[10];
int out[200];
char cOut[200];
bool BT(int now, int met, int n) {
  if (met == n) return true;
  for (int i = 0; i < 7; i++)
    if (a[now][i][0] > 0) {
      out[met] = a[now][i][a[now][i][0]];
      cOut[met] = '+';
      a[now][i][0]--;
      if (BT(i, met + 1, n)) return true;
      a[now][i][0]++;
    }
  for (int i = 0; i < 7; i++)
    if (a[i][now][0] > 0) {
      out[met] = a[i][now][a[i][now][0]];
      cOut[met] = '-';
      a[i][now][0]--;
      if (BT(i, met + 1, n)) return true;
      a[i][now][0]++;
    }
  return false;
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int i1, i2;
    cin >> i1 >> i2;
    a[i1][i2][0]++;
    a[i1][i2][a[i1][i2][0]] = i + 1;
    t[i1]++;
    t[i2]++;
  }
  bool ans = true;
  int odd1 = -1, odd2 = -1;
  for (int i = 0; i < 7; i++)
    if (t[i] % 2 == 1) {
      if (odd1 == -1)
        odd1 = i;
      else if (odd2 == -1)
        odd2 = i;
      else
        ans = false;
    }
  if (odd1 != -1 && odd2 == -1) ans = false;
  if (ans) {
    if (odd2 != -1) {
      if (BT(odd1, 0, n)) {
        for (int i = 0; i < n; i++) cout << out[i] << ' ' << cOut[i] << endl;
        return 0;
      }
      cout << "No solution\n";
    } else {
      for (int i = 0; i < 7; i++) {
        if (t[i] > 0 && BT(i, 0, n)) {
          for (int i = 0; i < n; i++) cout << out[i] << ' ' << cOut[i] << endl;
          return 0;
        } else if (t[i] > 0) {
          cout << "No solution\n";
          return 0;
        }
      }
    }
  } else
    cout << "No solution\n";
  return 0;
}
