#include <stdio.h>
#include <memory.h>
#define MAXN1 2000
#define MAXN2 16
char t[MAXN1];
int ispalindrom (int num, int base) {
int num, base;
char baseNum[2000];
int i = 0;
scanf("%d",&base);
while(num){
baseNum[i] = num % base;
num = num / base;
i++;
}
int low = 0;
int high = i;
while(low<high){
if(baseNum[low]!=baseNum[high]){
return 0;
}
low++;
high--;
}
return 1;
}
int main(void){
int n , i;
int ans[MAXN2+1];
while(scanf("%d", &n) != EOF && n != 0) {
memset(ans, 0, sizeof(ans));
for(i=2; i<=MAXN2; i++)
if(ispalindrom(num, base)) {
ans[0] = 1;
ans[i] = 1;
}
if(ans[0]) {
printf("Number %d is palindrom in basis", n);
for(i=2; i<=MAXN2; i++)
if(ans[i])
printf(" %d", i);
printf("\n");
} else
printf("Number %d is not palindrom\n", n);
}
return 0;
}