#include <bits/stdc++.h>
using namespace std;
void set_loosers_score(int& score, int& points_bank, int max_score = 23) {
  int _score = (points_bank > max_score) ? max_score : points_bank;
  score += _score;
  points_bank -= _score;
}
void print_result(int sets_a, int sets_b, int points_a, int points_b,
                  bool reversed = false) {
  assert(sets_a > sets_b);
  const int total_sets = sets_a + sets_b;
  const int last_set = total_sets - 1;
  int scores[5][2] = {{25, 0}, {25, 0}, {25, 0}, {25, 0}, {15, 0}};
  for (long long i = 0; i < sets_b; ++i) {
    swap(scores[i][0], scores[i][1]);
  }
  points_a -= total_sets == 5 ? 65 : 25 * sets_a;
  points_b -= 25 * sets_b;
  int delta = 0, da = 0, db = 0, long_set = last_set;
  if (23 * sets_b < points_a) {
    da = points_a - 23 * sets_b;
  }
  if (total_sets < 5 && 23 * sets_a < points_b) {
    db = points_b - 23 * sets_a;
  } else if (total_sets == 5 && 23 * 2 + 13 < points_b) {
    db = points_b - 23 * 2 - 13;
  }
  delta = max(da, db);
  if (delta) {
    points_a -= delta;
    points_b -= delta;
    if (sets_b != 0 && ((points_b < 13 && total_sets == 5) || points_b < 23)) {
      long_set = sets_b - 1;
    }
    scores[long_set][0] += delta;
    scores[long_set][1] += delta;
  }
  for (int i = last_set; (points_a > 0 || points_b > 0) && i >= 0; --i) {
    if (i < sets_b) {
      set_loosers_score(scores[i][0], points_a);
    } else if (i < 4) {
      set_loosers_score(scores[i][1], points_b);
    } else {
      set_loosers_score(scores[i][1], points_b, 13);
    }
  }
  if (reversed) {
    swap(sets_a, sets_b);
    for (long long i = 0; i < total_sets; ++i) swap(scores[i][0], scores[i][1]);
  }
  cout << sets_a << ':' << sets_b << endl;
  for (long long i = 0; i < total_sets; ++i) {
    cout << scores[i][0] << ':' << scores[i][1];
    if (i != total_sets - 1)
      cout << ' ';
    else
      cout << endl;
  }
}
bool is_3_0(int a, int b) {
  return ((a == 75 && b <= 69) || (a > 75 && a - 6 >= b && a - 53 < b));
}
bool is_3_1(int a, int b) {
  return ((a >= 75 && a <= 98 && b >= 25 && b <= 94) ||
          ((a > 98 || b > 94) && a + 19 >= b && a - 73 <= b));
}
bool is_3_2(int a, int b) {
  return ((a >= 65 && a <= 111 && b >= 50 && b <= 109) ||
          ((a > 111 || b > 109) && a + 44 >= b && a - 61 <= b));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int N;
  cin >> N;
  for (long long i = 0; i < N; ++i) {
    int a, b;
    cin >> a >> b;
    if (is_3_0(a, b))
      print_result(3, 0, a, b);
    else if (is_3_1(a, b))
      print_result(3, 1, a, b);
    else if (is_3_2(a, b))
      print_result(3, 2, a, b);
    else if (is_3_2(b, a))
      print_result(3, 2, b, a, true);
    else if (is_3_1(b, a))
      print_result(3, 1, b, a, true);
    else if (is_3_0(b, a))
      print_result(3, 0, b, a, true);
    else
      cout << "Impossible" << endl;
  }
  return 0;
}
