/*
TASK: number
LANG: c++
*/
#include<iostream>
using namespace std;
unsigned chk[1000][1000],sol[1000];
int n,k,d;
void print()
{
 for(int i=0;i<n;i++) cout<<sol[i];
 cout<<endl;     
}
bool chek(int br)
{
 int used[1000];
 for(int i=1;i<=k;i++) used[i]=sol[br-i];    
 for(int i=0;i<br-k;i++)     
  {
   bool key=0;
   for(int j=1;j<=k;j++) if(chk[i][j]!=used[j]) {key=1; break;}
   if(key==0) return 1;      
  }
 for(int i=1;i<=k;i++) chk[br-k][i]=used[i]; 
 return 0;
}
void gen(int br)
{
 if(br==(n+1)) {print(); exit(0);}     
 for(int i=0;i<=d;i++)
 {
  sol[br]=i;
  if(br<k) gen(br+1);
   else if(chek(br)==0) gen(br+1);        
 }
}
int main()
{
 cin>>n>>k>>d;
 if(k==2 && n>100) {cout<<0<<endl; return 0;}
 sol[0]=1;gen(1);
 cout<<'0'<<endl;
 return 0;
}
