#include <bits/stdc++.h>
using namespace std;
const long long INF = 1LL << 60;
struct point {
  long long v1, v2;
  point(long long cv1 = 0, long long cv2 = 0) {
    v1 = cv1;
    v2 = cv2;
  }
  bool operator<(const point &rhs) const {
    return v1 < rhs.v1 || (v1 == rhs.v1 && v2 < rhs.v2);
  }
  bool operator==(const point &rhs) const {
    return v1 == rhs.v1 && v2 == rhs.v2;
  }
};
map<point, point> M;
long long dp[30];
int A[30], B[30], C[30];
int dep, n;
point ans;
void dfs(int ro, long long v1, long long v2, long long v3, long long v4) {
  if (ro == dep) {
    point A;
    A.v1 = v1;
    A.v2 = v2;
    if (M.count(A) == 0)
      M[A] = point(v3, v4);
    else {
      point B = M[A];
      if (B.v1 < v3) {
        M[A] = point(v3, v4);
      }
    }
    return;
  }
  dfs(ro + 1, v1 + B[ro] - A[ro], v2 - A[ro], v3, v4 * 3);
  dfs(ro + 1, v1 + B[ro], v2 + C[ro], v3 + C[ro], v4 * 3 + 1);
  dfs(ro + 1, v1 - A[ro], v2 + C[ro] - A[ro], v3 + C[ro], v4 * 3 + 2);
}
void dfs2(int ro, long long v1, long long v2, long long v3, long long v4) {
  if (ro == n) {
    point A;
    A.v1 = -v1;
    A.v2 = -v2;
    if (M.count(A) != 0) {
      point B = M[A];
      long long d = B.v1 + v3;
      if (d > ans.v1) {
        ans.v1 = d;
        ans.v2 = B.v2 * dp[n - dep] + v4;
      }
    }
    if (v1 == 0 && v2 == 0 && dep == 0) {
      if (v3 > ans.v1) {
        ans.v1 = v3;
        ans.v2 = v4;
      }
    }
    return;
  }
  dfs2(ro + 1, v1 + B[ro] - A[ro], v2 - A[ro], v3, v4 * 3);
  dfs2(ro + 1, v1 + B[ro], v2 + C[ro], v3 + C[ro], v4 * 3 + 1);
  dfs2(ro + 1, v1 - A[ro], v2 + C[ro] - A[ro], v3 + C[ro], v4 * 3 + 2);
}
void print(int loc, long long v) {
  if (loc == 0) return;
  print(loc - 1, v / 3);
  int d = v % 3;
  if (d == 0)
    puts("LM");
  else if (d == 1)
    puts("MW");
  else
    puts("LW");
}
int main() {
  dp[0] = 1;
  for (int i = 1; i <= 25; i++) dp[i] = dp[i - 1] * 3;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d%d%d", &A[i], &B[i], &C[i]);
  dep = n / 2;
  point a;
  dfs(0, 0, 0, 0, 0);
  ans.v1 = -INF;
  dfs2(dep, 0, 0, 0, 0);
  if (ans.v1 == -INF)
    puts("Impossible");
  else {
    print(n, ans.v2);
  }
  return 0;
}
