#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
#define ii pair<int, int>
#define fi first
#define se second
using namespace std;
const int max_points = 2e2;
const int maxk = 5;
const int INF = 1e9;
int t;
bool dp[max_points + 10][max_points + 10][4][4];
bool check(int a, int b)
{
if (a == 3 && b != 2)
return 0;
if (a != 2 && b == 3)
return 0;
return 1;
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("SCORE.INP", "r"))
{
freopen("SCORE.INP", "r", stdin);
freopen("SCORE.OUT", "w", stdout);
}
for (int i = 0; i <= max_points; i++)
for (int j = 0; j <= max_points; j++)
for (int a = 0; a <= 3; a++)
for (int b = 0; b <= 3; b++)
dp[i][j][a][b] = 0;
dp[0][0][0][0] = 1;
for (int i = 0; i <= max_points; i++)
for (int j = 0; j <= max_points; j++)
for (int a = 0; a <= 3; a++)
for (int b = 0; b <= 3; b++)
{
int k = a + b;
if (k > 5)
continue;
int need_point = k == 5 ? 15 : 25;
if (a >= 1 && b != 3)
{
if (i >= need_point)
for (int c = 0; c <= min(j, need_point - 2); c++)
dp[i][j][a][b] |= dp[i - need_point][j - c][a - 1][b];
for (int c = need_point + 1; i - c >= 0 && j - c + 2 >= 0; c++)
dp[i][j][a][b] |= dp[i - c][j - c + 2][a - 1][b];
}
if (b >= 1 && a != 3)
{
if (j >= need_point)
for (int c = 0; c <= min(i, need_point - 2); c++)
dp[i][j][a][b] |= dp[i - c][j - need_point][a][b - 1];
for (int c = need_point + 1; i - c + 2 >= 0 && j - c >= 0; c++)
dp[i][j][a][b] |= dp[i - c + 2][j - c][a][b - 1];
}
}
cin >> t;
while (t--)
{
int a, b;
cin >> a >> b;
ii ans = {-1, 0};
for (int i = 0; i <= 3; i++)
for (int j = 0; j <= 3; j++)
if ((i >= 3 || j >= 3) && dp[a][b][i][j])
ans = max(ans, {i, -j});
if (ans.fi == -1)
cout << "Impossible", el;
else
cout << ans.fi << ":" << -ans.se, el;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4X3BvaW50cyA9IDJlMjsKY29uc3QgaW50IG1heGsgPSA1Owpjb25zdCBpbnQgSU5GID0gMWU5OwoKaW50IHQ7CmJvb2wgZHBbbWF4X3BvaW50cyArIDEwXVttYXhfcG9pbnRzICsgMTBdWzRdWzRdOwoKYm9vbCBjaGVjayhpbnQgYSwgaW50IGIpCnsKICAgIGlmIChhID09IDMgJiYgYiAhPSAyKQogICAgICAgIHJldHVybiAwOwogICAgaWYgKGEgIT0gMiAmJiBiID09IDMpCiAgICAgICAgcmV0dXJuIDA7CiAgICByZXR1cm4gMTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiU0NPUkUuSU5QIiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKCJTQ09SRS5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJTQ09SRS5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhfcG9pbnRzOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPD0gbWF4X3BvaW50czsgaisrKQogICAgICAgICAgICBmb3IgKGludCBhID0gMDsgYSA8PSAzOyBhKyspCiAgICAgICAgICAgICAgICBmb3IgKGludCBiID0gMDsgYiA8PSAzOyBiKyspCiAgICAgICAgICAgICAgICAgICAgZHBbaV1bal1bYV1bYl0gPSAwOwogICAgZHBbMF1bMF1bMF1bMF0gPSAxOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4X3BvaW50czsgaSsrKQogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IG1heF9wb2ludHM7IGorKykKICAgICAgICAgICAgZm9yIChpbnQgYSA9IDA7IGEgPD0gMzsgYSsrKQogICAgICAgICAgICAgICAgZm9yIChpbnQgYiA9IDA7IGIgPD0gMzsgYisrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGludCBrID0gYSArIGI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGsgPiA1KQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICBpbnQgbmVlZF9wb2ludCA9IGsgPT0gNSA/IDE1IDogMjU7CiAgICAgICAgICAgICAgICAgICAgaWYgKGEgPj0gMSAmJiBiICE9IDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA+PSBuZWVkX3BvaW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPD0gbWluKGosIG5lZWRfcG9pbnQgLSAyKTsgYysrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW2FdW2JdIHw9IGRwW2kgLSBuZWVkX3BvaW50XVtqIC0gY11bYSAtIDFdW2JdOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gbmVlZF9wb2ludCArIDE7IGkgLSBjID49IDAgJiYgaiAtIGMgKyAyID49IDA7IGMrKykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW2FdW2JdIHw9IGRwW2kgLSBjXVtqIC0gYyArIDJdW2EgLSAxXVtiXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGIgPj0gMSAmJiBhICE9IDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaiA+PSBuZWVkX3BvaW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPD0gbWluKGksIG5lZWRfcG9pbnQgLSAyKTsgYysrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW2FdW2JdIHw9IGRwW2kgLSBjXVtqIC0gbmVlZF9wb2ludF1bYV1bYiAtIDFdOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gbmVlZF9wb2ludCArIDE7IGkgLSBjICsgMiA+PSAwICYmIGogLSBjID49IDA7IGMrKykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW2FdW2JdIHw9IGRwW2kgLSBjICsgMl1baiAtIGNdW2FdW2IgLSAxXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgaW50IGEsIGI7CiAgICAgICAgY2luID4+IGEgPj4gYjsKICAgICAgICBpaSBhbnMgPSB7LTEsIDB9OwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDM7IGkrKykKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPD0gMzsgaisrKQogICAgICAgICAgICAgICAgaWYgKChpID49IDMgfHwgaiA+PSAzKSAmJiBkcFthXVtiXVtpXVtqXSkKICAgICAgICAgICAgICAgICAgICBhbnMgPSBtYXgoYW5zLCB7aSwgLWp9KTsKICAgICAgICBpZiAoYW5zLmZpID09IC0xKQogICAgICAgICAgICBjb3V0IDw8ICJJbXBvc3NpYmxlIiwgZWw7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjb3V0IDw8IGFucy5maSA8PCAiOiIgPDwgLWFucy5zZSwgZWw7CiAgICB9Cn0K