#include<iostream>
#include<vector>
using namespace std;
vector<int> minzeroone(int N)
{
int i,j,noupdate=0;
vector< vector<int> > bigint;
vector<int> mvec;
for(i=0;i<N;i++)
bigint.push_back(mvec);
bigint[1].push_back(0);
for(i=1,j=10%N;;i++,j=(j*10)%N)
{
bool flag=false;
if(bigint[j].size()==0)
{
bigint[j].clear();
bigint[j].push_back(i);
flag=true;
}
for(int k=1;k<N;k++)
{
if(bigint[k].size()>0 && bigint[(k+j)%N].size()==0 && i>bigint[k][bigint[k].size()-1])
{
bigint[(k+j)%N]=bigint[k];
bigint[(k+j)%N].push_back(i);
flag=true;
}
}
if(flag==false) noupdate++;
else noupdate=0;
if(noupdate==N||bigint[0].size()>0)
break;
}
return bigint[0];
}
int main()
{
vector<int>a=minzeroone(3);
for(vector<int>::iterator vec=a.begin();vec!=a.end();vec++)
{
cout<<*vec<<" ";
}
cout<<endl;
}