#include <bits/stdc++.h>
using namespace std;
int a[10], b[10], A, B, ans, ans_a[10], ans_b[10], X, Y;
bool check(int x, int y) {
  for (int i = 1; i <= x + y; i++) a[i] = b[i] = 0;
  int suma = A, sumb = B;
  for (int i = 1; i <= x; i++) a[i] = 25, suma -= 25;
  for (int i = 1; i <= y; i++) b[i + x] = 25, sumb -= 25;
  if (x == 3 && x + y == 5) a[3] -= 10, suma += 10;
  if (y == 3 && x + y == 5) b[5] -= 10, sumb += 10;
  if (suma < 0 || sumb < 0) return 0;
  if (y == 0 || (x > 0 && (x + y != 5 && suma <= sumb))) {
    if (sumb >= 23) {
      b[1] += 23;
      b[1] += min(sumb - 23, suma);
      a[1] += min(sumb - 23, suma);
      suma -= b[1] - 23;
      sumb -= b[1];
    }
  } else if (x == 0 || (y > 0 && (x + y != 5 && suma > sumb))) {
    if (suma >= 23) {
      a[x + 1] += 23;
      a[x + 1] += min(suma - 23, sumb);
      b[x + 1] += min(suma - 23, sumb);
      sumb -= a[x + 1] - 23;
      suma -= a[x + 1];
    }
  } else if (x + y == 5) {
    if (x == 3) {
      int t1 = min(suma, sumb - 13);
      int t2 = min(sumb, suma - 23);
      if (t1 > 0 && t1 >= t2) {
        b[3] += 13;
        b[3] += t1;
        a[3] += t1;
        suma -= t1;
        sumb -= t1 + 13;
      } else if (t2 > 0) {
        a[x + 1] += 23;
        a[x + 1] += t2;
        b[x + 1] += t2;
        sumb -= t2;
        suma -= t2 + 23;
      }
    } else {
      int t1 = min(sumb, suma - 13);
      int t2 = min(suma, sumb - 23);
      if (t1 > 0 && t1 >= t2) {
        a[5] += 13;
        a[5] += t1;
        b[5] += t1;
        sumb -= t1;
        suma -= t1 + 13;
      } else if (t2 > 0) {
        b[1] += 23;
        b[1] += t2;
        a[1] += t2;
        suma -= t2;
        sumb -= t2 + 23;
      }
    }
  }
  for (int i = 1; i <= x; i++) {
    if (sumb + b[i] >= a[i] - 2)
      sumb -= a[i] - 2 - b[i], b[i] = a[i] - 2;
    else {
      b[i] += sumb;
      sumb = 0;
      break;
    }
  }
  for (int i = x + 1; i <= x + y; i++) {
    if (suma + a[i] >= b[i] - 2)
      suma -= b[i] - 2 - a[i], a[i] = b[i] - 2;
    else {
      a[i] += suma;
      suma = 0;
      break;
    }
  }
  if (suma != 0 || sumb != 0) return 0;
  return 1;
}
void update(int x, int y) {
  if (x - y > ans) {
    X = x;
    Y = y;
    ans = x - y;
    for (int i = 1; i <= 5; i++) ans_a[i] = ans_b[i] = 0;
    if (x != 3) {
      for (int i = 1; i <= x + y; i++) ans_a[i] = a[i], ans_b[i] = b[i];
    } else {
      for (int i = 1; i <= 2; i++) ans_a[i] = a[i], ans_b[i] = b[i];
      for (int i = 3; i <= x + y - 1; i++)
        ans_a[i] = a[i + 1], ans_b[i] = b[i + 1];
      ans_a[x + y] = a[3];
      ans_b[x + y] = b[3];
    }
  }
}
void putout() {
  printf("%d:%d\n", X, Y);
  for (int i = 1; i <= X + Y; i++) printf("%d:%d ", ans_a[i], ans_b[i]);
  printf("\n");
}
void init() {
  scanf("%d%d", &A, &B);
  ans = -5;
  for (int i = 3; i >= 0; i--) {
    for (int j = 0; j <= 3; j++) {
      if (i - j < ans) break;
      if (i == 3 || j == 3) {
        if (i == 3 && j <= 2 && check(i, j)) update(i, j);
        if (j == 3 && i <= 2 && check(i, j)) update(i, j);
      }
    }
  }
  if (ans == -5)
    printf("Impossible\n");
  else {
    putout();
  }
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) init();
  return 0;
}
