def add(a,b):
k=0
for i in range(len(a)):
if(a[i]!=b[i]):
k=k+1
return(k)
sr=input().split()
N=int(sr[0])
B=int(sr[1])
D=int(sr[2])
k=1
a=[]
x=bin(0)[2:]
x=x.zfill(B)
a.append(x)
print(0,end=" ")
for i in range(1,2**B):
x=bin(i)[2:]
x=x.zfill(B)
f=1
for j in range(len(a)):
y=a[j]
if(add(x,y)<D):
f=0
break
if(f==1):
a.append(x)
k=k+1
if(k<=N):
print(i,end=" ")
/**************************************************************
Problem: 1532
User: admin
Language: Python
Result: Accepted
Time:556 ms
Memory:34480 kb
****************************************************************/