/*
NAME: Sorin PAUNESCU
SCHOOL: National College Of Computer Science "Grigore Moisil"
DIVISION: SR3
GRADE: 12
*/
#include <cstdio>
using namespace std;
int above, below;
int fingers[] = {0, 16, 16, 8, 8, 4, 4, 2, 2, 1, 1};
int s1[11], s2[11];
int usedPar[11], usedImpar[11];
int ok, showComma;
int done1, done2;
void citire();
void backPar(int, int);
void backImpar(int, int);
int main() {
freopen("prints.in", "r", stdin);
while (!feof(stdin)) {
citire();
if (above <= 32 && below <= 32) {
backPar(1, 1);
backImpar(1, 1);
}
if (ok == 0)
printf("None");
if (above == 1 && below == 1)
printf("None");
printf("\n");
}
return 0;
}
void citire() {
ok = 0;
showComma = 0;
for (int i = 1; i <= 10; i++)
s1[i] = s2[i] = usedPar[i] = usedImpar[i] = 0;
done1 = done2 = 0;
scanf("%d, %d", &above, &below);
}
void backPar(int k, int sum) {
if (done1 == 1)
return;
if (sum > above)
return;
if (sum == above && k == 1) {
ok = 1;
done1 = 1;
return;
}
if (sum == above && k != 1) {
printf("%d", s1[1]);
for (int i = 2; i <= k-1; i++)
printf(", %d", s1[i]);
ok = 1;
done1 = 1;
showComma = 1;
}
for (int i = 2; i <= 10; i += 2) {
if (!usedPar[i]) {
s1[k] = i;
usedPar[i] = 1;
backPar(k + 1, sum + fingers[i]);
s1[k] = 0;
usedPar[i] = 0;
}
}
}
void backImpar(int k, int sum) {
if (done2 == 1 || ok == 0)
return;
if (sum > below)
return;
if (sum == below && k != 1) {
done2 = 1;
if (showComma == 1)
for (int i = 1; i <= k-1; i++)
printf(", %d", s2[i]);
else {
printf("%d", s2[1]);
for (int i = 2; i <= k-1; i++)
printf(", %d", s2[i]);
}
}
for (int i = 1; i <= 10; i += 2) {
if (!usedImpar[i]) {
s2[k] = i;
usedImpar[i] = 1;
backImpar(k + 1, sum + fingers[i]);
s2[k] = 0;
usedImpar[i] = 0;
}
}
}