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
****************************************************************/