#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
#include <cassert>
using namespace std;
void input( int & m, int & p, int & q)
{
//ifstream fin("input.txt");
std:: cin >> m >> p >> q;
//fin.close();
}
void fillVec( vector < int > & elements, int m, int p, int q)
{
fill_n( elements.begin ( ) + m, p, 1 ) ; // filling the vectors with correct amount of numbers. The 0's all already there, so I only put the 1's, and the 2's in.
fill_n( elements.begin ( ) + m + p, q, 2 ) ;
}
void print( const vector< int > & nums, ostream& out)
{
for ( int a : nums) { out << a << ' ' ; }
out << endl;
}
void permute( vector< int > & nums, ostream& out)
{
assert ( std:: is_sorted ( nums.begin ( ) , nums.end ( ) ) ) ;
do {
print( nums, out) ;
} while ( std:: next_permutation ( nums.begin ( ) , nums.end ( ) ) ) ;
}
int main( )
{
int m, p, q;
input( m, p, q) ;
vector < int > elements( m + p + q) ;
fillVec( elements, m, p, q) ;
//ofstream fout("output.txt");
permute( elements, std:: cout ) ;
//fout.close();
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNhc3NlcnQ+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBpbnB1dChpbnQmIG0sIGludCYgcCwgaW50JiBxKQp7CiAgICAvL2lmc3RyZWFtIGZpbigiaW5wdXQudHh0Iik7CgogICAgc3RkOjpjaW4gPj4gbSA+PiBwID4+IHE7CiAgICAKICAgIC8vZmluLmNsb3NlKCk7Cn0KCnZvaWQgZmlsbFZlYyh2ZWN0b3IgPGludD4mIGVsZW1lbnRzLCBpbnQgbSwgaW50IHAsIGludCBxKQp7CiAgICBmaWxsX24oZWxlbWVudHMuYmVnaW4oKSArIG0sIHAsIDEpOyAvLyBmaWxsaW5nIHRoZSB2ZWN0b3JzIHdpdGggY29ycmVjdCBhbW91bnQgb2YgbnVtYmVycy4gVGhlIDAncyBhbGwgYWxyZWFkeSB0aGVyZSwgc28gSSBvbmx5IHB1dCB0aGUgMSdzLCBhbmQgdGhlIDIncyBpbi4KICAgIGZpbGxfbihlbGVtZW50cy5iZWdpbigpICsgbSArIHAsIHEsIDIpOwp9Cgp2b2lkIHByaW50KGNvbnN0IHZlY3RvcjxpbnQ+JiBudW1zLCBvc3RyZWFtJiBvdXQpCnsKICAgIGZvciAoaW50IGEgOiBudW1zKSB7IG91dCA8PCBhIDw8ICcgJzsgfQogICAgb3V0IDw8IGVuZGw7Cn0KCnZvaWQgcGVybXV0ZSh2ZWN0b3I8aW50PiYgbnVtcywgb3N0cmVhbSYgb3V0KSAKewogICAgYXNzZXJ0KHN0ZDo6aXNfc29ydGVkKG51bXMuYmVnaW4oKSwgbnVtcy5lbmQoKSkpOwogICAgZG8gewogICAgICAgIHByaW50KG51bXMsIG91dCk7IAogICAgfSB3aGlsZSAoc3RkOjpuZXh0X3Blcm11dGF0aW9uKG51bXMuYmVnaW4oKSwgbnVtcy5lbmQoKSkpOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBtLCBwLCBxOwoKICAgIGlucHV0KG0sIHAsIHEpOwoKICAgIHZlY3RvciA8aW50PiBlbGVtZW50cyhtICsgcCArIHEpOwogICAgZmlsbFZlYyhlbGVtZW50cywgbSwgcCwgcSk7CgogICAgLy9vZnN0cmVhbSBmb3V0KCJvdXRwdXQudHh0Iik7CgogICAgcGVybXV0ZShlbGVtZW50cywgc3RkOjpjb3V0KTsKICAgIAogICAgLy9mb3V0LmNsb3NlKCk7CgogICAgcmV0dXJuIDA7Cn0=