#include <bits/stdc++.h>
using namespace std;
int T;
int a, b;
int x[6], y[6];
bool check30(int a, int b) {
  a -= 75;
  x[1] = x[2] = x[3] = 25;
  y[1] = y[2] = y[3] = 0;
  if (a < 0) return 0;
  if (a > 0) {
    x[1] += a;
    y[1] = 23 + a;
    b -= 23 + a;
  }
  if (b < 0) return 0;
  for (int i = 1; i <= 3; i++) {
    if (y[i] != 0) continue;
    if (b < 24) {
      y[i] = b;
      b = 0;
    } else {
      y[i] = 23;
      b -= 23;
    }
  }
  if (b > 0) return 0;
  printf("3:0\n");
  for (int i = 1; i <= 3; i++) {
    printf("%d:%d", x[i], y[i]);
    if (i != 3)
      printf(" ");
    else
      printf("\n");
  }
  return 1;
}
bool check31(int a, int b) {
  a -= 75;
  b -= 25;
  y[1] = x[2] = x[3] = x[4] = 25;
  if (a < 0 || b < 0) return 0;
  if (a < 24) {
    x[1] = a;
    a = 0;
  } else {
    x[1] = 23;
    a -= 23;
  }
  if (a > b) return 0;
  if (a) {
    b -= a;
    x[1] += a;
    y[1] += a;
    a = 0;
  }
  for (int i = 2; i <= 4; i++)
    if (b < 24) {
      y[i] = b;
      b = 0;
    } else {
      y[i] = 23;
      b -= 23;
    }
  if (b) {
    if (y[1] > 25) {
      int t = y[1] - 25;
      y[1] -= t;
      x[1] -= t;
      y[2] += t;
      x[2] += t;
    }
    if (b > x[1]) return 0;
    x[1] -= b;
    x[2] += b;
    y[2] += b;
    b = 0;
  }
  printf("3:1\n");
  for (int i = 1; i <= 4; i++) {
    printf("%d:%d", x[i], y[i]);
    if (i != 4)
      printf(" ");
    else
      printf("\n");
  }
  return 1;
}
bool check32(int a, int b) {
  a -= 65;
  b -= 50;
  y[1] = y[2] = x[3] = x[4] = 25;
  x[5] = 15;
  if (a < 0 || b < 0) return 0;
  for (int i = 1; i <= 2; i++)
    if (a < 24) {
      x[i] = a;
      a = 0;
    } else {
      x[i] = 23;
      a -= 23;
    }
  for (int i = 3; i <= 4; i++)
    if (b < 24) {
      y[i] = b;
      b = 0;
    } else {
      y[i] = 23;
      b -= 23;
    }
  if (b < 14) {
    y[5] = b;
    b = 0;
  } else {
    y[5] = 13;
    b -= 13;
  }
  if (a > b) {
    x[1] += b;
    y[1] += b;
    a -= b;
    b = 0;
    for (int i = 3; i <= 5; i++) {
      if (y[i] > a) {
        y[i] -= a;
        x[1] += a;
        y[1] += a;
        a = 0;
      } else {
        x[1] += y[i];
        y[1] += y[i];
        a -= y[i];
        y[i] = 0;
      }
    }
    if (a > 0) return 0;
  } else if (a < b) {
    x[5] += a;
    y[5] += a;
    b -= a;
    a = 0;
    for (int i = 1; i <= 2; i++) {
      if (x[i] > b) {
        x[i] -= b;
        x[5] += b;
        y[5] += b;
        b = 0;
      } else {
        x[5] += x[i];
        y[5] += x[i];
        b -= x[i];
        x[i] = 0;
      }
    }
    if (b > 0) return 0;
  }
  printf("3:2\n");
  for (int i = 1; i <= 5; i++) {
    printf("%d:%d", x[i], y[i]);
    if (i != 5)
      printf(" ");
    else
      printf("\n");
  }
  return 1;
}
bool check23(int a, int b) {
  swap(a, b);
  a -= 65;
  b -= 50;
  y[1] = y[2] = x[3] = x[4] = 25;
  x[5] = 15;
  if (a < 0 || b < 0) return 0;
  for (int i = 1; i <= 2; i++)
    if (a < 24) {
      x[i] = a;
      a = 0;
    } else {
      x[i] = 23;
      a -= 23;
    }
  for (int i = 3; i <= 4; i++)
    if (b < 24) {
      y[i] = b;
      b = 0;
    } else {
      y[i] = 23;
      b -= 23;
    }
  if (b < 14) {
    y[5] = b;
    b = 0;
  } else {
    y[5] = 13;
    b -= 13;
  }
  if (a > b) {
    x[1] += b;
    y[1] += b;
    a -= b;
    b = 0;
    for (int i = 3; i <= 5; i++) {
      if (y[i] > a) {
        y[i] -= a;
        x[1] += a;
        y[1] += a;
        a = 0;
      } else {
        x[1] += y[i];
        y[1] += y[i];
        a -= y[i];
        y[i] = 0;
      }
    }
    if (a > 0) return 0;
  } else if (a < b) {
    x[5] += a;
    y[5] += a;
    b -= a;
    a = 0;
    for (int i = 1; i <= 2; i++) {
      if (x[i] > b) {
        x[i] -= b;
        x[5] += b;
        y[5] += b;
        b = 0;
      } else {
        x[5] += x[i];
        y[5] += x[i];
        b -= x[i];
        x[i] = 0;
      }
    }
    if (b > 0) return 0;
  }
  printf("2:3\n");
  for (int i = 1; i <= 5; i++) {
    printf("%d:%d", y[i], x[i]);
    if (i != 5)
      printf(" ");
    else
      printf("\n");
  }
  return 1;
}
bool check13(int a, int b) {
  swap(a, b);
  a -= 75;
  b -= 25;
  y[1] = x[2] = x[3] = x[4] = 25;
  if (a < 0 || b < 0) return 0;
  if (a < 24) {
    x[1] = a;
    a = 0;
  } else {
    x[1] = 23;
    a -= 23;
  }
  if (a > b) return 0;
  if (a) {
    b -= a;
    x[1] += a;
    y[1] += a;
    a = 0;
  }
  for (int i = 2; i <= 4; i++)
    if (b < 24) {
      y[i] = b;
      b = 0;
    } else {
      y[i] = 23;
      b -= 23;
    }
  if (b) {
    if (y[1] > 25) {
      int t = y[1] - 25;
      y[1] -= t;
      x[1] -= t;
      y[2] += t;
      x[2] += t;
    }
    if (b > x[1]) return 0;
    x[1] -= b;
    x[2] += b;
    y[2] += b;
    b = 0;
  }
  printf("1:3\n");
  for (int i = 1; i <= 4; i++) {
    printf("%d:%d", y[i], x[i]);
    if (i != 4)
      printf(" ");
    else
      printf("\n");
  }
  return 1;
}
bool check03(int a, int b) {
  swap(a, b);
  a -= 75;
  x[1] = x[2] = x[3] = 25;
  y[1] = y[2] = y[3] = 0;
  if (a < 0) return 0;
  if (a > 0) {
    x[1] += a;
    y[1] = 23 + a;
    b -= 23 + a;
  }
  if (b < 0) return 0;
  for (int i = 1; i <= 3; i++) {
    if (y[i] != 0) continue;
    if (b < 24) {
      y[i] = b;
      b = 0;
    } else {
      y[i] = 23;
      b -= 23;
    }
  }
  if (b > 0) return 0;
  printf("0:3\n");
  for (int i = 1; i <= 3; i++) {
    printf("%d:%d", y[i], x[i]);
    if (i != 3)
      printf(" ");
    else
      printf("\n");
  }
  return 1;
}
int main() {
  scanf("%d", &T);
  while (T--) {
    scanf("%d%d", &a, &b);
    if (check30(a, b)) continue;
    if (check31(a, b)) continue;
    if (check32(a, b)) continue;
    if (check23(a, b)) continue;
    if (check13(a, b)) continue;
    if (check03(a, b)) continue;
    printf("Impossible\n");
  }
  return 0;
}
