#include <iostream>
using namespace std;
int arr[3][100];
int six = 0, nine = 0, twenty = 0, j = 0;
bool flag;
void f(int n)
{
flag = false;
if (n == 0) {
for (int i = 0; i < 100; i++)
if (arr[0][i] == six &&
arr[1][i] == nine &&
arr[2][i] == twenty)
flag = true;
if (!flag) {
cout << "6: " << six << endl;
cout << "9: " << nine << endl;
cout << "20: " << twenty << endl;
arr[0][j] = six;
arr[1][j] = nine;
arr[2][j] = twenty;
j++;
cout << endl;
}
} else {
if (n % 6 == 0) {
six++; f(n - 6); six--;
}
if (n % 9 == 0) {
nine++; f(n - 9); nine--;
}
if (n % 20 == 0) {
twenty++; f(n - 20); twenty--;
}
}
}
int main()
{
f(54);
cin.get();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBhcnJbM11bMTAwXTsKaW50IHNpeCA9IDAsIG5pbmUgPSAwLCB0d2VudHkgPSAwLCBqID0gMDsKYm9vbCBmbGFnOwoKdm9pZCBmKGludCBuKQp7CiAgIGZsYWcgPSBmYWxzZTsKICAgaWYgKG4gPT0gMCkgewogICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgaSsrKQogICAgICAgICBpZiAoYXJyWzBdW2ldID09IHNpeCAmJgogICAgICAgICAgICAgYXJyWzFdW2ldID09IG5pbmUgJiYKICAgICAgICAgICAgIGFyclsyXVtpXSA9PSB0d2VudHkpCiAgICAgICAgICAgIGZsYWcgPSB0cnVlOwogICAgICBpZiAoIWZsYWcpIHsKICAgICAgICAgY291dCA8PCAiNjogIiA8PCBzaXggPDwgZW5kbDsKICAgICAgICAgY291dCA8PCAiOTogIiA8PCBuaW5lIDw8IGVuZGw7CiAgICAgICAgIGNvdXQgPDwgIjIwOiAiIDw8IHR3ZW50eSA8PCBlbmRsOwoKICAgICAgICAgYXJyWzBdW2pdID0gc2l4OwogICAgICAgICBhcnJbMV1bal0gPSBuaW5lOwogICAgICAgICBhcnJbMl1bal0gPSB0d2VudHk7CgogICAgICAgICBqKys7CgogICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICAgIH0KICAgfSBlbHNlIHsKICAgICAgaWYgKG4gJSA2ID09IDApIHsKICAgICAgICAgc2l4Kys7IGYobiAtIDYpOyBzaXgtLTsKICAgICAgfQogICAgICBpZiAobiAlIDkgPT0gMCkgewogICAgICAgICBuaW5lKys7IGYobiAtIDkpOyBuaW5lLS07CiAgICAgIH0KICAgICAgaWYgKG4gJSAyMCA9PSAwKSB7CiAgICAgICAgIHR3ZW50eSsrOyBmKG4gLSAyMCk7IHR3ZW50eS0tOwogICAgICB9CiAgIH0KfQoKaW50IG1haW4oKQp7CiAgIGYoNTQpOwogICBjaW4uZ2V0KCk7CiAgIHJldHVybiAwOwp9