#include <bits/stdc++.h>
using namespace std;
const int MAXN = 256;
int dp[4][4][MAXN][MAXN][2];
const vector<pair<int, int> > sco = {{3, 0}, {3, 1}, {3, 2},
                                     {2, 3}, {1, 3}, {0, 3}};
inline void init() {
  memset(dp, -1, sizeof(dp));
  dp[0][0][0][0][0] = 0;
  dp[0][0][0][0][1] = 0;
  for (int t1 = 0; t1 < 4; ++t1)
    for (int t2 = 0; t2 < 4; ++t2)
      for (int a = 0; a < MAXN; ++a)
        for (int b = 0; b < MAXN; ++b) {
          if (dp[t1][t2][a][b][0] == -1) continue;
          if (t1 >= 3 || t2 >= 3) continue;
          int x = (t1 + t2 == 4 ? 15 : 25);
          if (a + x < MAXN)
            for (int i = 0; i + 1 < x && b + i < MAXN; ++i) {
              dp[t1 + 1][t2][a + x][b + i][0] = x;
              dp[t1 + 1][t2][a + x][b + i][1] = i;
            }
          if (b + x < MAXN)
            for (int i = 0; i + 1 < x && a + i < MAXN; ++i) {
              dp[t1][t2 + 1][a + i][b + x][0] = i;
              dp[t1][t2 + 1][a + i][b + x][1] = x;
            }
          for (int i = x + 1; a + i < MAXN && b + i - 2 < MAXN; ++i) {
            dp[t1 + 1][t2][a + i][b + i - 2][0] = i;
            dp[t1 + 1][t2][a + i][b + i - 2][1] = i - 2;
          }
          for (int i = x + 1; b + i < MAXN && a + i - 2 < MAXN; ++i) {
            dp[t1][t2 + 1][a + i - 2][b + i][0] = i - 2;
            dp[t1][t2 + 1][a + i - 2][b + i][1] = i;
          }
        }
}
inline void solve(int a, int b) {
  int t1 = -1, t2 = -1;
  for (int i = 0; i < ((int)(sco).size()); ++i) {
    if (dp[sco[i].first][sco[i].second][a][b][0] != -1) {
      t1 = sco[i].first;
      t2 = sco[i].second;
      break;
    }
  }
  if (t1 == -1) {
    cout << "Impossible" << '\n';
    return;
  }
  cout << t1 << ':' << t2 << '\n';
  vector<pair<int, int> > ans;
  while (t1 || t2) {
    cerr << t1 << ' ' << t2 << '\n';
    int x = dp[t1][t2][a][b][0];
    int y = dp[t1][t2][a][b][1];
    if (x > y)
      --t1;
    else
      --t2;
    a -= x, b -= y;
    ans.push_back(make_pair(x, y));
  }
  reverse(ans.begin(), ans.end());
  cout << ans[0].first << ':' << ans[0].second;
  for (int i = 1; i < ((int)(ans).size()); i++) {
    cout << ' ' << ans[i].first << ':' << ans[i].second;
  }
  cout << '\n';
}
int main() {
  ios::sync_with_stdio(false);
  init();
  int t;
  cin >> t;
  while (t--) {
    int a, b;
    cin >> a >> b;
    solve(a, b);
  }
  return 0;
}
