#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a,b;
bool go3_0(){
if(a<75) return 0;
else if(a==75){
if(b>=0&&b<=69){
printf("3:0\n");
for(int i=0;i<3;i++){
int food=min(23,b);
b-=food;
printf("25:%d ",food);
}
return 1;
}
else return 0;
}
else{
if(b>=a-52&&b<=a-6){
printf("3:0\n");
printf("%d:%d ",a-50,a-52);
b-=(a-52);
for(int i=0;i<2;i++){
int food=min(23,b);
b-=food;
printf("25:%d ",food);
}
return 1;
}
else return 0;
}
}
bool go3_1(){
if(a<75) return 0;
else if(a>=75&&a<=98){
if(b>=25&&b<=a+19){
printf("3:1\n");
if(b<=94){
printf("%d:25 ",a-75);
b-=25;
for(int i=0;i<3;i++){
int food=min(23,b);
b-=food;
printf("25:%d ",food);
}
}
else{
int x=b-25-23-23;
printf("%d:25 ",a-25-25-x-2);
printf("25:23 25:23 ");
printf("%d:%d ",x+2,x);
}
return 1;
}
else return 0;
}
else{
if(b>=a-73&&b<=a+19){
printf("3:1\n");
if(b>=a-73&&b<=a-4){
int x=a-75;
printf("%d:%d ",x,x+2);
b-=(x+2);
for(int i=0;i<3;i++){
int food=min(23,b);
b-=food;
printf("25:%d ",food);
}
}
else{
int y=b-25-23-23+2;
printf("%d:25 ",a-50-y);
printf("%d:%d ",y,y-2);
printf("25:23 25:23 ");
}
return 1;
}
else return 0;
}
}
bool go3_2(){
if(a<65) return 0;
else if(a>=65&&a<=111){
if(b>=50&&b<=a+44){
printf("3:2\n");
if(b<=109){
a-=65;
b-=50;
for(int i=0;i<2;i++){
int food=min(23,a);
a-=food;
printf("%d:25 ",food);
}
for(int i=0;i<2;i++){
int food=min(23,b);
b-=food;
printf("25:%d ",food);
}
printf("15:%d ",b);
}
else{
int x=b-50-46;
a-=(x+2+50);
for(int i=0;i<2;i++){
int food=min(23,a);
a-=food;
printf("%d:25 ",food);
}
printf("25:23 25:23 ");
printf("%d:%d ",x+2,x);
}
return 1;
}
return 0;
}
else{
if(b>=a-61&&b<=a+44){
printf("3:2\n");
if(b>=a-61&&b<=a-2){
int x=a-23-25-25-15;
printf("%d:%d ",x,x+2);
printf("23:25 ");
b-=(x+2+25);
for(int i=0;i<2;i++){
int food=min(23,b);
b-=food;
printf("25:%d ",food);
}
printf("15:%d ",b);
}
else{
int y=b-50-36+2;
a-=(y+40);
for(int i=0;i<2;i++){
int food=min(23,a);
a-=food;
printf("%d:25 ",food);
}
printf("%d:%d ",y,y-2);
printf("25:23 15:13 ");
}
return 1;
}
else return 0;
}
}
bool go2_3(){
swap(a,b);
if(a<65) return 0;
else if(a>=65&&a<=111){
if(b>=50&&b<=a+44){
printf("2:3\n");
if(b<=109){
a-=65;
b-=50;
for(int i=0;i<2;i++){
int food=min(23,a);
a-=food;
printf("25:%d ",food);
}
for(int i=0;i<2;i++){
int food=min(23,b);
b-=food;
printf("%d:25 ",food);
}
printf("%d:15 ",b);
}
else{
int x=b-50-46;
a-=(x+2+50);
for(int i=0;i<2;i++){
int food=min(23,a);
a-=food;
printf("25:%d ",food);
}
printf("23:25 23:25 ");
printf("%d:%d ",x,x+2);
}
return 1;
}
return 0;
}
else{
if(b>=a-61&&b<=a+44){
printf("2:3\n");
if(b>=a-61&&b<=a-2){
int x=a-23-25-25-15;
printf("%d:%d ",x+2,x);
printf("25:23 ");
b-=(x+2+25);
for(int i=0;i<2;i++){
int food=min(23,b);
b-=food;
printf("%d:25 ",food);
}
printf("%d:15 ",b);
}
else{
int y=b-50-36+2;
a-=(y+40);
for(int i=0;i<2;i++){
int food=min(23,a);
a-=food;
printf("25:%d ",food);
}
printf("%d:%d ",y-2,y);
printf("23:25 13:15 ");
}
return 1;
}
else return 0;
}
}
bool go1_3(){
swap(a,b);
if(a<75) return 0;
else if(a>=75&&a<=98){
if(b>=25&&b<=a+19){
printf("1:3\n");
if(b<=94){
printf("25:%d ",a-75);
b-=25;
for(int i=0;i<3;i++){
int food=min(23,b);
b-=food;
printf("%d:25 ",food);
}
}
else{
int x=b-25-23-23;
printf("25:%d ",a-25-25-x-2);
printf("23:25 23:25 ");
printf("%d:%d ",x,x+2);
}
return 1;
}
else return 0;
}
else{
if(b>=a-73&&b<=a+19){
printf("1:3\n");
if(b>=a-73&&b<=a-4){
int x=a-75;
printf("%d:%d ",x+2,x);
b-=(x+2);
for(int i=0;i<3;i++){
int food=min(23,b);
b-=food;
printf("%d:25 ",food);
}
}
else{
int y=b-25-23-23+2;
printf("25:%d ",a-50-y);
printf("%d:%d ",y-2,y);
printf("23:25 23:25 ");
}
return 1;
}
else return 0;
}
}
bool go0_3(){
swap(a,b);
if(a<75) return 0;
else if(a==75){
if(b>=0&&b<=69){
printf("0:3\n");
for(int i=0;i<3;i++){
int food=min(23,b);
b-=food;
printf("%d:25 ",food);
}
return 1;
}
else return 0;
}
else{
if(b>=a-52&&b<=a-6){
printf("0:3\n");
printf("%d:%d ",a-52,a-50);
b-=(a-52);
for(int i=0;i<2;i++){
int food=min(23,b);
b-=food;
printf("%d:25 ",food);
}
return 1;
}
else return 0;
}
}
int main(){
//freopen("a.in","r",stdin);
//freopen("a.out","w",stdout);
int T;
cin>>T;
while(T--){
scanf("%d %d",&a,&b);
int aa=a,bb=b;
if(go3_0()) {printf("\n");continue;}
a=aa;b=bb;
if(go3_1()) {printf("\n");continue;}
a=aa;b=bb;
if(go3_2()) {printf("\n");continue;}
a=aa;b=bb;
if(go2_3()) {printf("\n");continue;}
a=aa;b=bb;
if(go1_3()) {printf("\n");continue;}
a=aa;b=bb;
if(go0_3()) {printf("\n");continue;}
a=aa;b=bb;
printf("Impossible\n");
}
return 0;
}
1157E - Minimum Array | 1661D - Progressions Covering |
262A - Roma and Lucky Numbers | 1634B - Fortune Telling |
1358A - Park Lighting | 253C - Text Editor |
365B - The Fibonacci Segment | 75A - Life Without Zeros |
1519A - Red and Blue Beans | 466A - Cheap Travel |
659E - New Reform | 1385B - Restore the Permutation by Merger |
706A - Beru-taxi | 686A - Free Ice Cream |
1358D - The Best Vacation | 1620B - Triangles on a Rectangle |
999C - Alphabetic Removals | 1634C - OKEA |
1368C - Even Picture | 1505F - Math |
1473A - Replacing Elements | 959A - Mahmoud and Ehab and the even-odd game |
78B - Easter Eggs | 1455B - Jumps |
1225C - p-binary | 1525D - Armchairs |
1257A - Two Rival Students | 1415A - Prison Break |
1271A - Suits | 259B - Little Elephant and Magic Square |