#include <iostream>
using namespace std;
int *sel;
int *chk;
const int NUM = 4;
void dfs(int n)
{
if( n == NUM )
{
for( int i = 0 ; i < NUM ; ++i )
cout << sel[i] << " ";
cout << endl;
}
else
{
for( int i = 0 ; i < NUM ; ++i )
{
if( chk[i] == 0 )
{
chk[i] = 1;
sel[n] = i;
dfs(n+1);
chk[i] = 0;
}
}
}
}
int main() {
sel = new int[NUM];
chk = new int[NUM];
for( int i = 0 ; i < NUM ; ++i )
sel[i] = chk[i] = 0;
dfs(0);
delete[] sel;
delete[] chk;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50ICpzZWw7CmludCAqY2hrOwpjb25zdCBpbnQgTlVNID0gNDsKCnZvaWQgZGZzKGludCBuKQp7CglpZiggbiA9PSBOVU0gKQoJewoJCWZvciggaW50IGkgPSAwIDsgaSA8IE5VTSA7ICsraSApCgkJCWNvdXQgPDwgc2VsW2ldIDw8ICIgIjsKCQljb3V0IDw8IGVuZGw7Cgl9CgllbHNlCgl7CgkJZm9yKCBpbnQgaSA9IDAgOyBpIDwgTlVNIDsgKytpICkKCQl7CgkJCWlmKCBjaGtbaV0gPT0gMCApCgkJCXsKCQkJCWNoa1tpXSA9IDE7CgkJCQlzZWxbbl0gPSBpOwoJCQkJZGZzKG4rMSk7CgkJCQljaGtbaV0gPSAwOwoJCQl9CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCXNlbCA9IG5ldyBpbnRbTlVNXTsKCWNoayA9IG5ldyBpbnRbTlVNXTsKCWZvciggaW50IGkgPSAwIDsgaSA8IE5VTSA7ICsraSApCgkJc2VsW2ldID0gY2hrW2ldID0gMDsKCQkKCWRmcygwKTsKCQoJZGVsZXRlW10gc2VsOwoJZGVsZXRlW10gY2hrOwoJcmV0dXJuIDA7Cn0=