#include <stdio.h>
#include<string.h>
int mochu(int a[],int len,int i){//判断能否整除 
	int sum=0;
	for(int j=0;j<len;j++){
		sum=(sum*10+a[j])%i;//牛逼 
	}
	if(sum==0)return 1;
	else return 0;
}
int main(){
char c[31];int a[30],tap;
while(scanf("%s",c)!=EOF){
	if(strcmp(c,"-1")==0){
		return 0;
	}
	tap=0;//tap记录输出了几个 
	for(int i=0;i<strlen(c);i++)//把字符转化位整数 
		a[i]=c[i]-'0';
	int i;
	for(i=2;i<=9;i++){//先输出第一个满足条件的i 
		if(mochu(a,strlen(c),i)){
		printf("%d",i);
		tap++;
		break;
		}
	}
	for(i++;i<=9;i++){//剩下的再输出,可以保证最后一位后面没有空格 
		if(mochu(a,strlen(c),i)){
		printf(" %d",i);
		tap++;
		}
	}
	if(tap==0)//一个没输出就none 
		printf("none");
	printf("\n");
}

	return 0;
}