#include <stdio.h>
typedef unsigned long long int ulong;
inline ulong binomial(unsigned int n, unsigned int k){
if( k>n ) return 0;
if( k==0 || k==n ) return 1;
if( 2*k>n ) k=n-k;
ulong b = n-k+1;
ulong f = b, j;
for( j=2; j<=k; ++j )
b = ++f * b / j;
return b;}
#define max 49
int main(void) {
unsigned int n, k, kk;
ulong b;
for( n=0; n<=max; n++ ){
//for( k=1; k<=max-n; k++ ) putchar(' ');
for( k=0; k<=n; k++ ) {
b=binomial(n,k);
kk= n-k < k ? n-k : k;
if( b
*kk
< 0x100000000ll
) putchar('.'); else if( b
<0x100000000ll
) putchar('+'); puts("+ sposób naprzemienny zawodzi"); puts("X wynik większy od 2^32-1"); return 0;}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWxvbmc7CgppbmxpbmUgdWxvbmcgYmlub21pYWwodW5zaWduZWQgaW50IG4sIHVuc2lnbmVkIGludCBrKXsKCWlmKCBrPm4gKSByZXR1cm4gMDsKCWlmKCBrPT0wIHx8IGs9PW4gKSByZXR1cm4gMTsKCWlmKCAyKms+biApIGs9bi1rOwoJdWxvbmcgYiA9IG4taysxOwoJdWxvbmcgZiA9IGIsIGo7Cglmb3IoIGo9Mjsgajw9azsgKytqICkgCgkJYiA9ICsrZiAqIGIgLyBqOwoJcmV0dXJuIGI7fQoKI2RlZmluZSBtYXggNDkKCmludCBtYWluKHZvaWQpIHsKCXVuc2lnbmVkIGludCBuLCBrLCBrazsKCXVsb25nIGI7Cglmb3IoIG49MDsgbjw9bWF4OyBuKysgKXsKCQlwcmludGYoIlxuJTJkIC0gIiwgbik7CgkJLy9mb3IoIGs9MTsgazw9bWF4LW47IGsrKyApIHB1dGNoYXIoJyAnKTsKCQlmb3IoIGs9MDsgazw9bjsgaysrICkgewoJCQliPWJpbm9taWFsKG4sayk7CgkJCWtrPSBuLWsgPCBrID8gbi1rIDogazsKCQkJaWYoIGIqa2sgPCAweDEwMDAwMDAwMGxsICkgcHV0Y2hhcignLicpOwoJCQllbHNlIGlmKCBiPDB4MTAwMDAwMDAwbGwgKSBwdXRjaGFyKCcrJyk7CgkJCWVsc2UgICAgICAgICAgICAgICAgICAgICAgIHB1dGNoYXIoJ1gnKTsKCQkJcHV0Y2hhcignICcpO319IAoJcHJpbnRmKCJcblxuICAgICIpOyBmb3IoIG49MDsgbjw9bWF4OyBuKysgKSBwcmludGYoIiUyZCIsIG4lMTApOyBwdXRzKCIiKTsKCXByaW50ZiggICIgICAgIik7IGZvciggbj0wOyBuPD1tYXg7IG4rKyApIGlmKCBuJTEwPT0wICkgcHJpbnRmKCIlMmQiLCBuLzEwKTsgZWxzZSBwcmludGYoIiAgIik7IHB1dHMoIiIpOwoJcHV0cygiKyBzcG9zw7NiIG5hcHJ6ZW1pZW5ueSB6YXdvZHppIik7CglwdXRzKCJYIHd5bmlrIHdpxJlrc3p5IG9kIDJeMzItMSIpOwoJcmV0dXJuIDA7fQ==