#include <iostream>
#include <iomanip>
using namespace std;
unsigned long long C(int N, int K)
{
unsigned long long r = 1;
for(int i = 0; i < K; ++i) r *= N-i;
for(int i = 1; i <= K; ++i) r /= i;
return r;
}
unsigned long long G(int N)
{
return 1ull << N*(N-1)/2;
}
unsigned long long Conn(int N)
{
if (N < 2) return 1;
unsigned long long r = 0;
for(int K = 1; K < N; ++K) r += K*C(N,K)*Conn(K)*G(N-K);
return G(N)-r/N;
}
int main()
{
for(int n = 1; n <= 11; ++n)
cout << setw(2) << n << " : " << setw(23) << Conn(n) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1bnNpZ25lZCBsb25nIGxvbmcgQyhpbnQgTiwgaW50IEspCnsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByID0gMTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBLOyArK2kpIHIgKj0gTi1pOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBLOyArK2kpIHIgLz0gaTsKICAgIHJldHVybiByOwp9CnVuc2lnbmVkIGxvbmcgbG9uZyBHKGludCBOKQp7CiAgICByZXR1cm4gMXVsbCA8PCBOKihOLTEpLzI7Cn0KdW5zaWduZWQgbG9uZyBsb25nIENvbm4oaW50IE4pCnsKICAgIGlmIChOIDwgMikgcmV0dXJuIDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgciA9IDA7CiAgICBmb3IoaW50IEsgPSAxOyBLIDwgTjsgKytLKSByICs9IEsqQyhOLEspKkNvbm4oSykqRyhOLUspOwogICAgcmV0dXJuIEcoTiktci9OOwp9CmludCBtYWluKCkKewogICAgZm9yKGludCBuID0gMTsgbiA8PSAxMTsgKytuKQogICAgICAgIGNvdXQgPDwgc2V0dygyKSA8PCBuIDw8ICIgOiAiIDw8IHNldHcoMjMpIDw8IENvbm4obikgPDwgZW5kbDsKfQo=