#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 55;
long long n,k,m;
string s;
long long prefix[MaxN];
void backtrack(long long pos)
{
    if(pos==n+1)
    {
        for (long long i=1; i<s.size(); i++)
        {
            cout << s[i] ;
        }
        cout << "\n";
        return;
    }
    for (long long i=0; i<=((prefix[max(0ll,pos-1)]-prefix[max(0ll,pos-1-(m-1))])<k); i++)
    {
        s[pos*2-1]=i+'0';
        s[pos*2+1]=' ';
        if(i==0)
        {
            prefix[pos]=prefix[max(0ll,pos-1)];
            backtrack(pos+1);
        }
        else
        {
            prefix[pos]=prefix[max(0ll,pos-1)]+1;
            backtrack(pos+1);
        }
    }
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> k >> m;
    for (long long i=1; i<=2*n; i++)
    {
        s += ' ';
    }
    backtrack(1);
}
