// 题意: 求能整除n的十进制数,由0或1组成
#include<iostream> // DFS
using namespace std;
int n,ok;
int num[100]={1}; //一定是以 1 开头
int mod(int cur) //判断num[0]-num[cur]所表示的值能否被n整除
{
int s=0;
for(int i=0;i<=cur;++i)
{
s=(s*10+num[i])%n;
}
return s;
}
void dfs(int cur)
{
if(cur>=100) //答案保证不超过100位
return;
num[cur]=1;
if(mod(cur)==0)
{
for(int i=0;i<=cur;++i)
printf("%d",num[i]);
printf("\n");
ok=1;
return;
}
num[cur]=0;
if(mod(cur)==0)
{
for(int i=0;i<=cur;++i)
printf("%d",num[i]);
printf("\n");
ok=1;
return;
}
num[cur]=1;
dfs(cur+1); //在位置cur上填充 1 ,然后继续深搜
if(ok)
return;
num[cur]=0;
dfs(cur+1); //在位置cur上填充 0 ,然后继续深搜
}
int main()
{
while(cin>>n&&n)
{
ok=0;
if(n==1) //当n=1,不必再往下搜索了
{
printf("1\n");
}
else
{
dfs(1); // 首位是 1 ,接下来从第2位开始搜索起
}
}
return 0;
}