#include<bits/stdc++.h>
using namespace std;
long long n,k;
string s;
void backtrack(long long pos, long long cnt)
{
if(pos==n+1)
{
for (long long i=1; i<s.size(); i++)
{
cout << s[i];
}
cout << "\n";
return;
}
if(pos==1)
{
for (long long i=0; i<=1; i++)
{
s[2*pos-1]=char(i+'0');
s[2*pos]=' ';
if(i==0)
{
if(k-cnt<=(n-pos)/2+(n-pos)%2)
{
backtrack(pos+1,cnt);
}
}
else
{
if(cnt+1<=k)
{
backtrack(pos+1,cnt+1);
}
}
}
return;
}
else
{
long long l1 = 0;
long long r1 = !(cnt==k && s[2*(pos-1)-1]=='0');
long long l2 = (s[2*(pos-1)-1]=='0' &&
(n-pos)/2+(n-pos)%2 < max(0ll,k-cnt));
long long r2 = !(s[2*(pos-1)-1]=='1' &&
(n-pos)/2 < max(0ll,k-cnt));
long long l = max(l1,l2);
long long r = min(r1,r2);
for(long long i=l; i<=r; i++)
{
s[2*pos-1]=char(i+'0');
s[2*pos]=' ';
if(i==0)
{
backtrack(pos+1,cnt);
}
else if(i==1 && s[2*(pos-1)-1]=='0')
{
backtrack(pos+1,cnt+1);
}
else
{
backtrack(pos+1,cnt);
}
} }
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
for (long long i=1; i<=2*n; i++)
{
s+=' ';
}
backtrack(1,0);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBsb25nIG4sazsKc3RyaW5nIHM7CnZvaWQgYmFja3RyYWNrKGxvbmcgbG9uZyBwb3MsIGxvbmcgbG9uZyBjbnQpCnsKICAgIGlmKHBvcz09bisxKQogICAgewogICAgICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTxzLnNpemUoKTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCBzW2ldOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICJcbiI7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYocG9zPT0xKQogICAgewogICAgICAgIGZvciAobG9uZyBsb25nIGk9MDsgaTw9MTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgc1syKnBvcy0xXT1jaGFyKGkrJzAnKTsKICAgICAgICAgICAgc1syKnBvc109JyAnOwoKICAgICAgICAgICAgaWYoaT09MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoay1jbnQ8PShuLXBvcykvMisobi1wb3MpJTIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYmFja3RyYWNrKHBvcysxLGNudCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihjbnQrMTw9aykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBiYWNrdHJhY2socG9zKzEsY250KzEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBsb25nIGxvbmcgbDEgPSAwOwogICAgICAgIGxvbmcgbG9uZyByMSA9ICEoY250PT1rICYmIHNbMioocG9zLTEpLTFdPT0nMCcpOwoKICAgICAgICBsb25nIGxvbmcgbDIgPSAoc1syKihwb3MtMSktMV09PScwJyAmJgogICAgICAgICAgICAgICAgICAgICAgICAobi1wb3MpLzIrKG4tcG9zKSUyIDwgbWF4KDBsbCxrLWNudCkpOwoKICAgICAgICBsb25nIGxvbmcgcjIgPSAhKHNbMioocG9zLTEpLTFdPT0nMScgJiYKICAgICAgICAgICAgICAgICAgICAgICAgIChuLXBvcykvMiA8IG1heCgwbGwsay1jbnQpKTsKCiAgICAgICAgbG9uZyBsb25nIGwgPSBtYXgobDEsbDIpOwogICAgICAgIGxvbmcgbG9uZyByID0gbWluKHIxLHIyKTsKCiAgICAgICAgZm9yKGxvbmcgbG9uZyBpPWw7IGk8PXI7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHNbMipwb3MtMV09Y2hhcihpKycwJyk7CiAgICAgICAgICAgIHNbMipwb3NdPScgJzsKCiAgICAgICAgICAgIGlmKGk9PTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJhY2t0cmFjayhwb3MrMSxjbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoaT09MSAmJiBzWzIqKHBvcy0xKS0xXT09JzAnKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiYWNrdHJhY2socG9zKzEsY250KzEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYmFja3RyYWNrKHBvcysxLGNudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9ICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY2luID4+IG4gPj4gazsKICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTw9MipuOyBpKyspCiAgICB7CiAgICAgICAgcys9JyAnOwogICAgfQogICAgYmFja3RyYWNrKDEsMCk7Cn0K