#include <bits/stdc++.h>   int a, b, i, j, x, y, ch, P[202], Q[202], X[202], Y[202];   bool ran(int A, int B, int C) {     if (A <= B && B <= C)       return true;     else       return false;   }   int main() {     for (i = 0; i <= 23; i++) X[i] = 25, Y[i] = i;     for (i = 24; i < 200; i++) {       X[i] = i + 2;       Y[i] = i;     }     for (i = 0; i <= 13; i++) P[i] = 15, Q[i] = i;     for (i = 14; i < 200; i++) P[i] = i + 2, Q[i] = i;     int T;     scanf( %d , &T);     while (T--) {       scanf( %d%d , &a, &b);       ch = 0;       for (i = 0; i < 200; i++) {         x = a - X[i];         y = b - Y[i];         if (x == 50 && ran(0, y, 46)) {           ch = 1;           puts( 3:0 );           printf( %d:%d %d:%d %d:%d n , X[i], Y[i], 25, y / 2, 25, y - y / 2);           break;         }       }       for (i = 0; ch == 0 && i < 200; i++) {         x = a - X[i];         y = b - Y[i];         if (ran(50, x, 73) && ran(25, y, 71)) {           ch = 1;           puts( 3:1 );           y -= 25;           printf( %d:%d %d:%d %d:%d %d:%d n , x - 50, 25, X[i], Y[i], 25, y / 2,                  25, y - y / 2);           break;         }         x = a - Y[i];         y = b - X[i];         if (x == 75 && ran(0, y, 69)) {           ch = 1;           puts( 3:1 );           printf( %d:%d %d:%d %d:%d %d:%d n , 25, (y + 1) / 3, Y[i], X[i], 25,                  (y + 1) / 3, 25, y - (y + 1) / 3 * 2);           break;         }       }       for (i = 0; ch == 0 && i < 200; i++) {         x = a - X[i];         y = b - Y[i];         if (ran(40, x, 86) && ran(50, y, 86)) {           ch = 1;           puts( 3:2 );           y -= 50;           x -= 40;           j = 0;           while (1) {             if (ran(0, y - j, 23) && ran(0, j, 13)) break;             j++;           }           printf( %d:%d %d:%d %d:%d %d:%d %d:%d n , x / 2, 25, x - x / 2, 25,                  X[i], Y[i], 25, y - j, 15, j);           break;         }         x = a - Y[i];         y = b - X[i];         if (ran(65, x, 88) && ran(25, y, 84)) {           ch = 1;           puts( 3:2 );           x -= 65;           y -= 25;           j = 0;           while (1) {             if (ran(0, y - j, 46) && ran(0, j, 13)) break;             j++;           }           printf( %d:%d %d:%d %d:%d %d:%d %d:%d n , x, 25, Y[i], X[i], 25,                  (y - j) / 2, 25, (y - j) - (y - j) / 2, 15, j);           break;         }       }       for (i = 0; ch == 0 && i < 200; i++) {         x = a - P[i];         y = b - Q[i];         if (ran(50, x, 96) && ran(50, y, 96)) {           ch = 1;           puts( 3:2 );           y -= 50;           x -= 50;           printf( %d:%d %d:%d %d:%d %d:%d %d:%d n , x / 2, 25, x - x / 2, 25, 25,                  y / 2, 25, y - y / 2, P[i], Q[i]);           break;         }       }       for (i = 0; ch == 0 && i < 200; i++) {         x = a - Y[i];         y = b - X[i];         if (ran(50, x, 86) && ran(40, y, 86)) {           ch = 1;           puts( 2:3 );           y -= 40;           x -= 50;           j = 0;           while (1) {             if (ran(0, x - j, 23) && ran(0, j, 13)) break;             j++;           }           printf( %d:%d %d:%d %d:%d %d:%d %d:%d n , 25, y - y / 2, 25, y / 2,                  Y[i], X[i], x - j, 25, j, 15);           break;         }         x = a - X[i];         y = b - Y[i];         if (ran(25, x, 84) && ran(65, y, 88)) {           ch = 1;           puts( 2:3 );           y -= 65;           x -= 25;           j = 0;           while (1) {             if (ran(0, x - j, 46) && ran(0, j, 13)) break;             j++;           }           printf( %d:%d %d:%d %d:%d %d:%d %d:%d n , 25, y, X[i], Y[i],                  (x - j) / 2, 25, (x - j) - (x - j) / 2, 25, j, 15);           break;         }       }       for (i = 0; ch == 0 && i < 200; i++) {         x = a - Q[i];         y = b - P[i];         if (ran(50, x, 96) && ran(50, y, 96)) {           ch = 1;           puts( 2:3 );           y -= 50;           x -= 50;           printf( %d:%d %d:%d %d:%d %d:%d %d:%d n , 25, y - y / 2, 25, y / 2,                  x / 2, 25, x - x / 2, 25, Q[i], P[i]);           break;         }       }       for (i = 0; i < 200 && ch == 0; i++) {         x = a - Y[i];         y = b - X[i];         if (ran(50, y, 73) && ran(25, x, 71)) {           ch = 1;           puts( 1:3 );           x -= 25;           printf( %d:%d %d:%d %d:%d %d:%d n , 25, y - 50, Y[i], X[i], x / 2, 25,                  x - x / 2, 25);           break;         }         x = a - X[i];         y = b - Y[i];         if (ran(0, x, 69) && y == 75) {           ch = 1;           puts( 1:3 );           printf( %d:%d %d:%d %d:%d %d:%d n , X[i], Y[i], (x + 1) / 3, 25,                  (x + 1) / 3, 25, x - (x + 1) / 3 * 2, 25);           break;         }       }       for (i = 0; i < 200 && ch == 0; i++) {         x = a - Y[i];         y = b - X[i];         if (y == 50 && ran(0, x, 46)) {           ch = 1;           puts( 0:3 );           printf( %d:%d %d:%d %d:%d n , Y[i], X[i], x / 2, 25, x - x / 2, 25);           break;         }       }       if (ch == 0) {         puts( Impossible );       }     }   }