fork(6) download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <stdio.h>
  5. #include <string.h>
  6. using namespace std;
  7.  
  8. #define MODDER 1000000000
  9. #define DIGITSIZE 9
  10. #define INT32 int
  11. #define INT64 long long
  12.  
  13. class BigInteger
  14. {
  15. vector<int> digit;
  16. short signum;
  17. static bool CHECK;
  18. int setSignum(INT64&);
  19. BigInteger add(const BigInteger &) const;
  20. BigInteger subtract(const BigInteger &) const;
  21. char* trim(char *);
  22. public:
  23. BigInteger() { signum = 0; }
  24. BigInteger(INT64);
  25. BigInteger(char*);
  26. BigInteger(string&);
  27. BigInteger(const BigInteger&);
  28. BigInteger operator = (INT64);
  29. BigInteger operator = (char *);
  30. BigInteger operator = (string &);
  31. BigInteger operator = (BigInteger);
  32. BigInteger operator + (const BigInteger&) const;
  33. BigInteger operator - (const BigInteger&) const;
  34. bool operator == (const BigInteger&) const;
  35. bool operator < (const BigInteger&) const;
  36. bool operator <= (const BigInteger&) const;
  37. void setCheck(bool check);
  38. string toString();
  39. void printDigit();
  40. };
  41.  
  42. bool BigInteger::CHECK;
  43.  
  44. inline int BigInteger::setSignum(INT64 &n)
  45. {
  46. if (n == 0)
  47. signum = 0;
  48. else if (n > 0)
  49. signum = 1;
  50. else
  51. {
  52. signum = -1;
  53. n = -n;
  54. }
  55. return signum;
  56. }
  57.  
  58. BigInteger BigInteger::add(const BigInteger &b) const
  59. {
  60. BigInteger temp;
  61. int i;
  62. int len1 = digit.size();
  63. int len2 = b.digit.size();
  64. int minLen = len1 < len2 ? len1 : len2;
  65. int digitSum = 0, carry = 0;
  66. for (i = 0; i < minLen; i++)
  67. {
  68. digitSum = carry + digit[i] + b.digit[i];
  69. temp.digit.push_back(digitSum % MODDER);
  70. carry = digitSum / MODDER;
  71. }
  72. if (len1 == len2 && carry)
  73. temp.digit.push_back(carry);
  74. else if (len1 > len2)
  75. {
  76. while (i < len1)
  77. {
  78. digitSum = carry + digit[i++];
  79. temp.digit.push_back(digitSum % MODDER);
  80. carry = digitSum / MODDER;
  81. }
  82. if (carry)
  83. temp.digit.push_back(carry);
  84. }
  85. else
  86. {
  87. while (i < len2)
  88. {
  89. digitSum = carry + b.digit[i++];
  90. temp.digit.push_back(digitSum % MODDER);
  91. carry = digitSum / MODDER;
  92. }
  93. if (carry)
  94. temp.digit.push_back(carry);
  95. }
  96. temp.signum = 1;
  97. return temp;
  98. }
  99.  
  100. BigInteger BigInteger::subtract(const BigInteger &b) const
  101. {
  102. BigInteger temp;
  103. int size = b.digit.size();
  104. int borrow = 0, prevBorrow = 0, i;
  105. for (i = 0; i < size; i++)
  106. {
  107. borrow = (digit[i] - prevBorrow) < b.digit[i] ? 1 : 0;
  108. temp.digit.push_back((digit[i] - prevBorrow) + borrow*MODDER - b.digit[i]);
  109. prevBorrow = borrow ? 1 : 0;
  110. }
  111. int biggerSize = digit.size();
  112. while (i < biggerSize)
  113. {
  114. temp.digit.push_back(digit[i] - prevBorrow);
  115. i++;
  116. prevBorrow = 0;
  117. }
  118. i--;
  119. while (temp.digit[i] == 0)
  120. {
  121. temp.digit.pop_back();
  122. i--;
  123. }
  124. temp.signum = 1;
  125. return temp;
  126. }
  127.  
  128. char* BigInteger::trim(char *n)
  129. {
  130. int len = strlen(n);
  131. int index = 0, i;
  132. char *nnew = new char[len];
  133.  
  134. if (n[0] == '-' || n[0] == '+')
  135. {
  136. nnew[0] = n[0];
  137. index++;
  138. }
  139. for (i = index; n[i] == '0'; i++);
  140. if (i == len)
  141. {
  142. strcpy(nnew, "0");
  143. return nnew;
  144. }
  145. if (i != index)
  146. {
  147. while (i != len)
  148. nnew[index++] = n[i++];
  149. }
  150. nnew[index] = 0;
  151. return nnew;
  152. }
  153.  
  154. BigInteger::BigInteger(INT64 n)
  155. {
  156. setSignum(n);
  157. while (n)
  158. {
  159. digit.push_back(n % MODDER);
  160. n /= MODDER;
  161. }
  162. }
  163.  
  164. BigInteger::BigInteger(char *n)
  165. {
  166. if (((n[0] == '+' || n[0] == '-') && n[1] == '0') || n[0] == '0')
  167. n = trim(n);
  168.  
  169. int length, msb;
  170. char tempDigit[DIGITSIZE + 1];
  171. for (length = msb = 0; n[length] != 0; length++)
  172. {
  173. if (n[length] == '0')
  174. msb++;
  175. }
  176. if (msb == length)
  177. {
  178. signum = 0;
  179. return;
  180. }
  181.  
  182. if (n[0] == '-')
  183. {
  184. signum = -1;
  185. length--;
  186. msb = 1;
  187. }
  188. else if (n[0] == '+')
  189. {
  190. signum = 1;
  191. length--;
  192. msb = 1;
  193. }
  194. else
  195. {
  196. signum = 1;
  197. msb = 0;
  198. }
  199.  
  200. if (length <= DIGITSIZE)
  201. {
  202. memcpy(tempDigit, n + msb, length);
  203. tempDigit[length] = '\0';
  204. digit.push_back(stoi(tempDigit));
  205. }
  206. else
  207. {
  208. int k = length, chunkLen;
  209. while (k != 0)
  210. {
  211. k -= DIGITSIZE;
  212. chunkLen = k >= 0 ? DIGITSIZE : k + DIGITSIZE;
  213. k = k < 0 ? 0 : k;
  214.  
  215. memcpy(tempDigit, n + msb + k, chunkLen);
  216. tempDigit[chunkLen] = '\0';
  217. digit.push_back(stoi(tempDigit));
  218. }
  219. }
  220. }
  221.  
  222. BigInteger::BigInteger(string &n)
  223. {
  224. int l = n.length();
  225. char *num = new char[l + 1];
  226. for (int i = 0; i < l; i++)
  227. num[i] = n[i];
  228. num[l] = 0;
  229. (*this) = num;
  230. }
  231.  
  232. BigInteger::BigInteger(const BigInteger &n)
  233. {
  234. digit = n.digit;
  235. signum = n.signum;
  236. }
  237.  
  238. BigInteger BigInteger::operator=(INT64 n)
  239. {
  240. digit.clear();
  241. if (setSignum(n) == 0)
  242. {
  243. char ret[] = "0";
  244. return ret;
  245. }
  246.  
  247. while (n)
  248. {
  249. digit.push_back(n % MODDER);
  250. n /= MODDER;
  251. }
  252. return *this;
  253. }
  254.  
  255. BigInteger BigInteger::operator=(char *n)
  256. {
  257. BigInteger temp(n);
  258. (*this) = temp;
  259. return *this;
  260. }
  261.  
  262. BigInteger BigInteger::operator=(string &n)
  263. {
  264. BigInteger temp(n);
  265. (*this) = temp;
  266. return *this;
  267. }
  268.  
  269. BigInteger BigInteger::operator=(BigInteger b)
  270. {
  271. digit = b.digit;
  272. signum = b.signum;
  273. return *this;
  274. }
  275.  
  276. BigInteger BigInteger::operator+(const BigInteger &b) const
  277. {
  278. if (b.signum == 0)
  279. return *this;
  280. if (signum == 0)
  281. return b;
  282.  
  283. if (signum == 1 && b.signum == 1)
  284. return (*this).add(b);
  285. if (signum == 1 && b.signum == -1)
  286. return (*this).subtract(b);
  287. if (signum == -1 && b.signum == 1)
  288. return b.subtract(*this);
  289. BigInteger temp = (*this).add(b);
  290. if (temp.signum == 1)
  291. temp.signum = -1;
  292. return temp;
  293. }
  294.  
  295. BigInteger BigInteger::operator-(const BigInteger &b) const
  296. {
  297. if ((*this) == b)
  298. {
  299. char ret[] = "0";
  300. return ret;
  301. }
  302. if (signum == 1 && b.signum == 1)
  303. {
  304. if (*this < b)
  305. {
  306. BigInteger temp = b.subtract((*this));
  307. temp.signum = -1;
  308. return temp;
  309. }
  310. else
  311. return (*this).subtract(b);
  312. }
  313. if (signum == 1 && b.signum == -1)
  314. return (*this).add(b);
  315. if (signum == -1 && b.signum == 1)
  316. {
  317. BigInteger temp = (*this).add(b);
  318. temp.signum = -1;
  319. return temp;
  320. }
  321. if (*this < b)
  322. {
  323. BigInteger temp = (*this).subtract(b);
  324. temp.signum = -1;
  325. return temp;
  326. }
  327. return b.subtract((*this));
  328. }
  329.  
  330. bool BigInteger::operator==(const BigInteger &b) const
  331. {
  332. if (signum != b.signum)
  333. return false;
  334. if (signum == 0)
  335. return true;
  336. int size1 = digit.size();
  337. int size2 = b.digit.size();
  338. if (size1 == size2)
  339. {
  340. int i = 0;
  341. while (i < size1)
  342. {
  343. if (digit[i] == b.digit[i])
  344. i++;
  345. else
  346. return false;
  347. }
  348. if (i == size1)
  349. return true;
  350. }
  351. return false;
  352. }
  353.  
  354. bool BigInteger::operator<(const BigInteger &b) const
  355. {
  356. if (signum != b.signum)
  357. return signum < b.signum;
  358. int size1 = digit.size();
  359. int size2 = b.digit.size();
  360. switch (signum)
  361. {
  362. case 1:
  363. if (size1 == size2)
  364. {
  365. int i = size1 - 1;
  366. while (i >= 0)
  367. {
  368. if (digit[i] == b.digit[i])
  369. i--;
  370. else
  371. return digit[i] < b.digit[i];
  372. }
  373. if (i == size1)
  374. return false;
  375. }
  376. return size1 < size2;
  377. case -1:
  378. if (size1 == size2)
  379. {
  380. int i = size1 - 1;
  381. while (i >= 0)
  382. {
  383. if (digit[i] == b.digit[i])
  384. i--;
  385. else
  386. return digit[i] > b.digit[i];
  387. }
  388. if (i == size1)
  389. return false;
  390. }
  391. return size1 > size2;
  392. }
  393. }
  394.  
  395. bool BigInteger::operator<=(const BigInteger &b) const
  396. {
  397. if (*this < b || *this == b)
  398. return true;
  399. return false;
  400. }
  401.  
  402. inline void BigInteger::setCheck(bool check)
  403. {
  404. CHECK = check;
  405. }
  406.  
  407. string BigInteger::toString()
  408. {
  409. if (signum == 0)
  410. return "0";
  411.  
  412. int length = digit.size();
  413. string number, temp;
  414. int len;
  415.  
  416. number = to_string(digit[length - 1]);
  417.  
  418. for (int i = length - 2; i >= 0; i--)
  419. {
  420. temp = to_string(digit[i]);
  421. len = temp.length();
  422. if (len != DIGITSIZE)
  423. temp.insert(0, DIGITSIZE - len, '0');
  424. number += temp;
  425. }
  426. if (signum == -1)
  427. return "-" + number;
  428. return number;
  429. }
  430.  
  431. //void BigInteger::printDigit()
  432. //{
  433. // for (int i = 0; i < digit.size(); i++)
  434. // printf("digit %d: %d\n", i, digit[i]);
  435. //}
  436.  
  437. BigInteger fib[120];
  438.  
  439. string toFibinary(BigInteger &b)
  440. {
  441. vector<int> chosenFibs;
  442. int i = 1, length;
  443. while (fib[i] <= b)
  444. {
  445. i++;
  446. }
  447. length = i - 1;
  448. i -= 2;
  449. chosenFibs.push_back(length);
  450.  
  451. b = b - fib[length];
  452. BigInteger zero;
  453. while (!(b == zero))
  454. {
  455. while (b < fib[i])
  456. i--;
  457. b = b - fib[i];
  458. chosenFibs.push_back(i);
  459. }
  460. char *fibinary = new char[length];
  461. memset(fibinary, '0', length);
  462. int size = chosenFibs.size();
  463. for (int i = 0; i < size; i++)
  464. fibinary[length - chosenFibs[i]] = '1';
  465. fibinary[length] = 0;
  466. return fibinary;
  467. }
  468.  
  469. int main()
  470. {
  471. fib[1] = 1;
  472. fib[2] = 2;
  473. for (int i = 3; i < 120; i++)
  474. fib[i] = fib[i - 1] + fib[i - 2];
  475.  
  476. string n1, n2;
  477. BigInteger sum;
  478. int len, i;
  479. bool firsttime = true;
  480. while (cin >> n1 >> n2)
  481. {
  482. if(!firsttime)
  483. printf("\n");
  484. if (n1 == "0" && n2 == "0")
  485. {
  486. printf("0\n");
  487. continue;
  488. }
  489. len = n1.length();
  490. for (i = 0; i < len; i++)
  491. {
  492. if (n1[i] == '1')
  493. sum = sum + fib[len - i];
  494. }
  495. len = n2.length();
  496. for (i = 0; i < len; i++)
  497. {
  498. if (n2[i] == '1')
  499. sum = sum + fib[len - i];
  500. }
  501. cout << toFibinary(sum) << endl;
  502. sum = "0";
  503. firsttime = false;
  504. }
  505. return 0;
  506. }
  507.  
Time limit exceeded #stdin #stdout #stderr 15s 3488KB
stdin
100101000010100010101001010100
1010100101010001010101010001010000010101001001010010001010100100100100010010000001001010101010000001

101010010010010100100000100101001001001010
1010101010100100001010101010010100010010101001010100100001010010100100010

1010101001010101010100100100000000100101010010101010000001010100
10010010101000100010101000101010100101001010001001010010010001001010100010000101010001010

10101010000
1000100101000010010001010100010010001010101001010000010101010001010101000000100101010

1000100000010101000000101010010100101010010010100101010
10101010000100

10101
1010010001001000001001001000010101000000101000010100101010101000001001010010000000100000

100010010000100010010010000100101
10100101010100101010000010100101001010101010100000000101010101010010101010100010101010000

1001000000010010010101010
1000101001000101001010010101010101001000010101000101010001001010100000001

10100101010101010001010100001001010101000100010010100100100101
10010010010100010010101010100101010000010010100000010100001001

1010000100100101000101001000101001
10100010100100101

10101000101000101010000001010
101001010001010000010100101001010101001010001010101001001010100010010010001010

100001010101010100100101000101010100001001010100101010101000101000010101001010100010010101010
101001000010100000010010010101010101010000101001000000000100010

10101010100
1001010010100100101000000010000010100001000000100101000100010000001

1010101000000100010100101010000100010001000010101010101010010001001001010101010100101010101001000101
100100101010101010

1010100001010000101010100010010001010000000101
10001001000100010101010100

10100100001000100100101000100001000010101010101001
10010010000010100010001010010100101010100000100010100101001

101010101001001010100101010001000100001010001001000101010101010001000000010100101001000100
10101010100001010010010001000101

10100010100100000010100000100101010101001001010100100101
101010101010101010101010100101000010001010101010010010101010010010010101000101010101001

10000101010100
101001000000001010010100100101010101001001010100100000010100101010101010010

1001010000010010010
10100100001010000010010101010000000000

1001010010000010101010010100001010001000100010010010
1001010000101010100010010101010100010100

1000100100010100101000010010100001010
1010100000001000101010

1010010100010010001001001000100000010001010101010101001010101001010101001000100010000101000000101
100100100010010000

10100101010100100100101001010100100001001010100101
100100010100010100000101001000101010100000001001

100000100101000001001000101000100100010101001010101000101010
1010100101010100000101000101010100100

1001010010100100101010100010100100010010010000001001010100
1001010100010101

10100010100100101000001000010
10010101000101010000000101010100000001000010100001000001000000010101010010100010000001000

101010010101
1010101010100100101000100010001001010100000101000010101010001010101001

1000000010101010010010000010100010001001010101010101010101001010101001001010
1010100101010010001010100001010001010101000001001001010000001

101001010101000100000100010101010
10100101010101010010010010001001010001010010101000100100100010100010101

1010101000000001010
10001000001000010101

100000101001000000101010101
101010100100010101000000010001000100100100101010100101010101

100101001001010101010010101010010010101000010101000010100100001010100000101001001001000101
10100101010101001010101010010101010000100101001010101000100001010001010100010101001010010000010010

100010001010100001010010010010100100010001001010101010101
10101001010000101010000010001010001010100100001010101001010010101001010101010

10100010000100100001010100100001010100010101000001010010101010101001
101001010101010000001010101001010100100101010001010101000010101010101001010100010

1000101000001010100000001010
10100101010001000000100101001001001010101010101001000010100100010010

1010101
1010010100001000101000101000001010010101010100000010100010001010100100101001

1010010001010101010101010000000010101010010010100010010100010100001001000100001010101010101000100100
1010000000010010100101001010100001010001001010001000100100101010100000101000

1001010101001010101010010001010010010000010100101010101000000101010100101000001001010101
1001001001001001000101000001010001001001010101010100100000001

10100101010
10100101001010010010010010101010010100010010101000101010100100101010100101000010100100010

1000100010101000100001010100000010010101
1000100000000100000100001001000101001001010010010101010

1010100100
1001000100000001010101000

100010101001000100000100000010001010100100010000100000000000100001001010100100000010001
10010010001000001000010101001000100101010101001000010000010000100001010000010010001

100000010010101000100100010
1010100101010010000000010101010000000010000101010101010101001010010100100100010001010010001010010010

101001010100100100100101001000010100101010010010100010100101010101010101010010001001000
100010100001010001010000100100100101000100100101000001010100100100010010

100100001000100101010010
101010100101010100101010100

1010101010101001000101001000010100
1

10101000010
1000101

101001010010101001000
10

1010010001010010001000100000101000010000010100000010101010
10100010100010010010010001001001010001010100000101000000000010010000010100010010010000

10101000100010000001001000010010000100010001010010001001000100101010101000010100100001000010101
1010100010010101001010010100000100101001000101001001010100100100100101010

10101010101000000001010000
1010101001010001001010100000100000001010010100100100001010101010

10001000100101001000010001001010101000101010001000000100101001010101001010100
101010010101000100010001000001001001000100010010000

101000000100101001010001010010000001001010101010010010100010101
1000000001001010010

100101010010001010101010101010101010100101000101010101010001010001001
1000010101001001010010100010000100001000101010101001001000010101010010101

10101001010010000101010100100010100100010100001
1000010100000010000010101000100010101

101010101010010010101010101010101010010010100010000100101010001010101000001010101010100
100100101001010010101001010010010100101001010100010101001001001010000100100001

10010101010000010101
100100101010010100010000010100100000010010001001010000010101010101010101010000100010010000010010100

10101001001001001001010010000010100101000010100010100010100010101010010010001010010010100100
10001010010101010

10000100001000010010100010100101
1001001001001000010100100001010000010100101010010001000100000

10100101001001010101000001010101010000001000100100000010010101
10101010101000010001010010100000100010100100101010000101001000001010100

1010100100100
100000101010

10010010010100
100100100100101001000000010100000001001010

1010101010010000001
10010100001000100010100100001001010100000010010101010101010100010000101010101

1010001000100001010100100001000000101
1001000010

10101000010101000101010101001001000010000001010100101010100001001001010000010
10010001001010100001001000100101000101001010000010010000100000001000010

1010100000101001010001010001000000001000101000001000000010100100101001010010100
1000101000100001010101010100010101000101010100010100101010101010010101000001000100101000100101

1001010000101010100100101001010101001010101010010100010101010
10101001000010101010000001010010000100

10101010001010000100100100100101000001001
10010010100101010100101010100100000101010010101000100

10010100001010000
10100101010100010100000010100101010010000101000010010101010100000000101001001010010101010000001010

1000101001010101001001010001010000101001010100100010010101000010010
10010

1000100
101001010101001000101010000010001010010001001000000101010010100001010101010010101

1010101010000000000010010001010000
1000101010010010010101

1001000100010100001001010101
10001001010000101001000000010100101001001010101010000101001001000101001010

1010010100010101010000000001001010100100101010010000001010000000010001000010001
1010001000000010001001001010101000100010010010001000100100000100000101010101010001010001010

10001000101001000000000010101001010101
100010100001001000000100010001010101010

1001
10010000100000100010100010000101010001010100101010010101010101010010101001000000101010100

101010000100001010100101000100010
1001001000000101010000001001000

10001010101001010100010000001010010
10010

100101010101010000100001000100101001
100

10
1001010100001000000100101000101010100010101010010101000101010010101010100100100

100100101010000001010101001001010100010100001001010101000010001001000100
10101001010100101001010100001010100010010001

101001001010101001000010101010101000000010100101000101000001010101010100001
1000000001000010000101000100100100000010100101

10
10010100001000100101000101010

1010101010100000010000100010101000101010100100100100100101001010001001010010010001010010
10000100101010100000000101010

1010101010101001010101010100010101001001010010100000100100100101010101010001010
1000010010000010100100000100101000010100000001001000101000010100101001001000001010010101010100100

1000100010100101010
1001010010100000101010100100100010101010100100101001

10101000100000101010101
10010010010101010001010000100010

100101000101010010010101010001010101000101000100100100010010101010010010101010100001010100010010
10101

10101001001010
1010010010101010

10
101010100101000001010101010100101

1010000101010001000010010001000100100101000001000010
1010000000000010101010010100001000100010000100000000100100001001001010

100100101010010100101010101010100001000100000101010100100000101010000100101000101001000100101010001
1010

1001010100100010000001010001010101000001010100101010010010100010001001001010
100100

10100001010001000
1000100001010101001000001000000101001001010010100001001001000010001010000

100101000101000010001010001
101001000101001010010010100100010001010100010100100000001001010010101001010010010010010000100101

10010100010101000010000101010010000001010100010
1010000001000

10101000010100101
1010000101010010101010010100101001010101010100010101010101001010100100000001001010000010101

101010100000010100000000000010100101000000101010101010100000000010100101001001
1010101010101000010010100101000000101010001010000100100100000001010000000010100000101

100100001010010100101010010010100100101001010010010100
101001001000100101001010100

101001000010101010001001001001000001010000010010101010010010
1010101010010101010010100100001000001010100101000010010000101010101000010000000101010010101010101010

10101010101010100010000010010100010000100001010000100100100000101010010010000001010010100010
10010001010000010101010010001010000100101

10100
10101010101010101010000101001010100010001010100100000001010101000100001001001001010010010100101001

1001010100010010100100101010010010101010100100001010010001001001010010
1010000100100010100010001001000101010010010010101010101000

101000000010101010010101000100101000010010100100101000000101
100100100000010100101001001000101010101010101001000000

1010010101000010001010010010101010000101010100101010010000
1001010010010100100

100101000001000010101010101010101000101000001010101001010010
1010

10100100
1001001001000010

1000101010100100
10010101010010010000010101010101010010

1000010010100100101010100100101010101001001001000000010100
10101000001010100010101001000010001000101010010101000101001001010000100100101010100010010000101

1001
1010100101010101010000010101001010100100010101001010100010101000101010

10101001010000
100101000100100100101000100100

100101010100010101001000010100010100000101010010100001010100001010101010100010010010010101000
100101000001000101010010001001000010010010101001001000100100001001

10010010001001010101001000010100100
10100101001000101000001001000100101001001000001001000010100010000010100100100010100

1010010010101000010100100000010010000001010100
10101010101001010000010010101010010001000000100100001010000100010000101000000010100101010100101001

100100100010010101001010100010101010000100101000100000001001001000101001001001010010000100101
10101001010101010001001000001001000000000

1010100010101010001010101001010101001000000010010010010101001001010100100001
1001010010101001000000010100000100010100101001010100010101010010101010101010101010100010010000001010

101
10100001010100101010001010101010101001010010001001

10100101010001010100101010010010010101010010100010100010101000101010100100101
1001010100100001000000010010001010100100010001010100

1001000000100101001010010010001010001001000101000101010010000100100000010010
10101010100101010000010100010010010010101010100000101010010001000100100010101001001001000

1000100101010100
1010101010000000101001010101010101001010101000001010100101010101010101010100

10010101010101000100101001000010101000101010000001000010100101010100001010000101001001001001010
100100001000101010100101010101010001010100000101010101010

10101001001010101000001010
1000010100101010000100101010100101010000101000000100100001010

1001000101010000
1010001010101001000000010000100000101010101010101010100100010100100010

101000010001001010100001010000100
10000100010001010001000010101010100101001010100101001000101

101001010101010101000001001000010100000101001001001000010101000101000101010010010010000101010
1000000001010010010101010001000001000010101010101010010001010000001010010001000101010100001000

10010100000100010101010010000010101001000100000010001001001001000000000101001000101000100000
10000010010001000100100

1010101010101010100101010101010101010100010001010101000010101000
10101010000100100100101000001010001000010000010101010010000

1010001010010100010010101
1010101010100010100010010100101010

1000000100101
100001010010101000101000000010001000100001000100100001010010101001000100000100

101000101
100010100100010010001010001000100101000000101000010010100000001000101001000101001010010101010101010

1010001000001000101000100100
10100100100000101010101000100010010010100000100101010

10001000
1010100101000001001010010001001010100100010001000001010010101

100000100000001001001000101001010100010000100101000001000100100000010100100101001010
10100000010010001010001000100001010

100
1001001010010100000

1001001010100010100101010010
1010010101001000000010101000101010100010001001010101000010010100101001000101010000001

10001001001001001010100100101010010010001001010010000001010
1001010100100100100010101010100000000000010100101010010000100

1010100100101000100010100101001001001001
100010010010101000100001000010101010010001000101000101001000100101010100101000100101010000001

1001010100010010101000010001001010001000
1000100001010010000010

1000100010101001010101001010001
10000101010101010100101010010010010010010101000100

100010100001010101010010
10101001000101010001000101000101001010101010100100101010100010101000101001010010101001000010

10101001001010100100100010100010100001010101010101001000010010000101001010010101
1010100001010101001001000000000101010100100

10010010100010010001001010010100010101
10001010100100100101000100001

1010010101010100000010101000001010100
1000

1000010100001010101000001010010100100100101001001010100010010101000100001000010010
1000101000101010010100100101010

10010001000101010101010100010010101000100010101000100001000001010100000000
10

10010100100100101001000000000000001000101001010101000010101010010100010
100100001001010100101010010001001001000101001

1001001000001010101001000001010001001010100100101010001000000101000010000101000101010000010010100100
101001001010101001000101010100010001000101

1000101010100010101000000101010101
10010010100

1010010101001010010010001001000010100101010001001000010000100101001010100010010101
100000010100101001010101001010101001

1001000010101001000010100101000010101010000101
101010001010101010101001001010

10010101010100010000
10001000010101010001010100001000010100100010100101010101001001001001001

10101001010000010101000100101010010000010010
1010101010100000100100101001010100101010101010010010101000000

100000100000100101010000101000
1001010010100100010010001010001010100101001001010010101010000010

10101010000100000100100001010
10100100010001010010100101000101001000101001000

101000100010010101000101010101000100101010
10000001000010010100000010010101001010000100010001010100100010100100100101010001001

1000010001010101001000010100101010101000101001001000010100
1001010010001010101001010100100100010

10101010100010001000000101000010101010101001010100100000001010
10

101010100000001000010100010010001001010000
1010

1000000010101010101000100
10101010000100010000000010000101

100010100100101001010001001000100101010001001010100100101010101001000101
10001000010101010100

101010010100000101001000
101000101010101001000010101000010000001010101010100

1000101010010010101001000101001010001010100100010001010101010010000010101000101010101010
10010101010101010000101010100101000010000

1001010100
100100001010101000101010100101001010001010010010100100010100100101000001001010

10000010100001010010000100101000100010000100101001000010010000001010100010100
1010101000001010100010010100101000101010000101001001000101010000100101010010101001

101001010000010100010101000100100100101000001010100010001
1000100001000010100000000000101001000001000000

1010101010010001000100101000000101
101000101000010101001000101000010101010100010101010010101001010000010100101000100100001000101

1001010001010000001000010000101001001010000010101010100010
100001001001010010001010000010000101010100100000101000101010000010100000100101000010010

101010001000001000100010001010101000100001010001000000001010
1010

10100010101000100010
10001000000010010100001010101010000001000100101

1010000010101000100100100101010
1010101010000010100010100001010000010010101000000101001010000101000100010100101000101010000000

101001
1001001

1001000101010100010010101010101010101010010000100100101001001010010
1010101000010000101001010010010000100100100000101010001010010010000101010000001010

101000
101001001010000000001000000000010101010010

101
101010000101001010010010100101001000010010101000101001000010010010101000101000

100001000100010101010010101000010101001001000100000100000001001001010100101010010101010
10101001010010000101001000000101000101000010100000101001010101000101000010010000101

101010001000001
10101010010101010010101010010100100100101010101010101010100010010000010101010010000101000

1010100
1001000001001010000010101010010000101010000010101010101010001010010100010100101000101010010101010100

10
101000100100100010010

10000001001001010101001000000101010100
101010000010010100101000010100010000101010

10010000001001010101010001010000000000101010000000001000100100010010100
101010010100101010101010101010101

10101001000010010010101001010101000010101000101000010000001010100010100001
10000101001001000

101010101010
101010001001000010

10010001010001010101000101010010010100000100000010000010101000101000010
101010010100101010101010010100010010001001000101010100010100001010010100000010101001010001010100001

1000100100101010010001
100000101001001001001001010001010000010100101001010010101000010101010010010100010

1001010101010100100100001001010100010010101010010010101001001000000000001010010010101000001001010010
1000010

10010101010101010101001000010010100101010100100101010010010010100001
10100101010100

101001001001010100010000001000100100000100010100100010101000010001000101010010010101010010101000000
100101001000000010101010

1000101010100101001010101010100010010100101000100101000101010010010101010000101000101010100101000
10010100001010100010101010010101001001010100000000101000001010

10100101001001000000101001000100101010101010100101010
10100100100101010101001010010010101000010001010101000100100000

10101000100101010000100101
10100000010

1010010
10001010010001010010100001010001000010000010

1000101000010101010101010101001
1010001001010101010010100010101010000101010010000010001010100000001010

1000101
1000101010100

10100010100001000100010010001010010100010101010101001001010010001001010101010101001
10001001010010010100100101010010000101010010101000100010010101010001010010

1010100101000
10010101001010100100000100010100100001001

101010101000000101001000100101000100101010101010010
1010010010100101001000101000100001010100001000010010101010000010000100000

100101001010010100101010000100101000100101001010100001000100100100100000001
10100101

1000010100101001
10100010100101010101010101000101000100010101000100000010101000010101010010101010101001001001

101000100010101000100100100101000010001000101000100101001001010000001001000000010100100101010010010
1010

100100010000001010010100000100100101010000101000100101010001010101
10010100100

1001001000101010010000101
10101000010100

1000100101010100010101001000100010101001001001010010010
1010010001010100101000010010010001010000101000101010

10101010010100010000001010010101010101001001001000101010100010010101001010101010000101010
1

101010010100001010101010101000100100100010010001010100100100001001010100010101010
10100101010100010010100010000000101

1010100000101000001000100100101010100101001001001001000101010101
10100101010001010010000100010100010100100100001010100100010010101010101001010100001010000000010101

100
10000010101010000010100100100101001010010100101

101010010101010010100100101000100100000010100000000101010010101010001000101000100010000100101
101000010

1010000100101000000100101001010101001
10101001000010010000100101001000010101010010101010100100101010000000101010010100010010101010001

10101000
1010100101000101010101000001001001010010010101010100100001010000101000100010001

1010001010100100000100100100001000100100010101001001010101000000100010100100100000100100000100100010
100100001

10100000001
1010010010100100101010100101010010101000100000101010010000100010101

1001001000101010101001010000101001010
10100101010000101000100100100101001000101010000

10001010100010101010101010101001010010001010100100000
1010100101010010100001010100010

10010100001000100101001001001001010000010000010100101000000010100010010000101001010100101
100001000001000

101010100100101000010010001000100101001010001010100000100100001010000
101000100100101010101000000001000010010001000100001000010

101001001010010100010010101010100010100010100101010010101010001000100101010100001000
101000001001001001001001010010101000010010010100010001000

1001001010101010010010100101010001010
1001000101000100100010101000100100010100100100101010000100010100101010001001010010

101010100101000010001001001000010100100101010100001000010010101010001010001000010101010000101010
1001010100100100101001001010101001010101001010100001010100010100010100100000

100010101001000000010101010100010101010
10010101010101010100010100

10000010100010000101010001001001000000010101010101001010010000001000101000100010000001001001
101001010001010001000010010101010101010010

1001001000001000010000000101000010010001000001000100100010100001000010010101010101010010100000001
1001010100101010001010001001001000101001000100101001010

1010010001010010010101010100100101010101001010010010101010010010000010000100101010001010000000
101010101001001010010001001010100101000010010100101010100010

10000100010100101010100000010010
10101010001010100100000

10010010010001000010101000010001010010100010001010100001000101001001010000001000101001000
100000010100101010100100101001001010010010010100

101001000010101000000010101010100010100
10101000101000101001001010010000100100101001000100101001010010010010101010010100100001001

101010001010010010001010010101001001
10101001000001000101010101000100000101010100000101001000100101000101000100101001010101010010

10010001010010100000101010101010100000010101000000001000101001010001001001010101
1010100000001001010010010000101010010010010010010101010101010000100000100010101000010100010010010010

101000001
10010010100101001010000101010100100000100101010010100101010

10000101000101010001010010101000001001000101001010010100101010100010101000101
1010100010000100001001000010010100100101000010101010100100000001010100100

1010101010010101001010101000010001
1000100100000100001000000010101001010101000000100101000000001000000001010010010001001001010101001

100101001010101001010010000010010010000100101010010101000101010100010100101000010010
1010101010100010010100

1001001010001001001010001010001010100100101010010100010100010100
101010100010100100101000100000101010010001001010001000101001000010100010010100000

1010001010010101
1000001010010010101000000000

10100001000010100100001010101001001010010101010101010101010001001010101010101000101010000100100
100100100010

1000010101000100010100010000010000100101000100101000100100010101010001000000001
10100100101010101010000000100101001001010010100101010100101000010001000

10010001001010100101010100001010001000000010001000101000000101010010000100100
10100100000000010101001010000001001010

101001000100000000101000000100010010000101010000000000001010101001010001001001010010100101
10101001010010101

10100101000100010001010000010101000101010010101010010101010100010100100
100100001010

100100101010001001001010101010101010010000010100000100100000100010010010
101001000100001010001001001000100100000100101000000000000001001010101010100

101000100100101000100010100101001000100
100100001010001010100010010001010000000010001000000100000100010100101010001000

1001001010010100101010100101010100000100101000100001001000000101010010001000
1000100100

10100101000010100101010000001001010001001
1010001

1010000010101000000000101010010000100101000100101001001000100010101000010101010
101010

1010010100100101000000101010100010000101000101010010101010001000100010010010100000010000101010101000
1010010100010100100000100010101010101001010100100000010100100000101000100100010010101001010010100

10100001000101010010
100010000010101000001000101001010100010101010010100000000100000010

100001001000101010101010000000010
101010010100100101000101001010000100010

100000101010010101000101010101010101000101000100010001001
10101000000010010010010100100010100100010000001000001001010101000101000010101010100

1000010000101001000
10100010010001001010010001000101000010

1001010100010010100101010010000001010000000010101000100101010010101010100101000101010100101000100100
101010100100001010100

10101001000010010100100001010100010100100010100100010100101
1010101000100100100101000010000001000100100101000

1001010000001010010100010000000100101000100010100010000101000100001
10010101001001010101001

1010100101001000101010010101000010100010100000010101010010010
1001001010000000

101001010101010010101010100100010100001010001000101001001000001001001000100100101000
100010010010101000100

100100100
10100001010100101000010010100000010001010101010001010000100101001010100000000000010101001001001010

10101010000010100100010001000100101000101010010010
101010010101010100101010101000101001000101000101000100010101000100100101001010100

10010100010000100101000000101000101010100010
1010

1001010000010101000101001010100000101010000101001001010101000010000101001000100000000010
1000000101001001010010101010

100010001000001
1001000100101000101010100010001001

100100101000001000100100010101010001010000010000010100100101
10100101001001010101010101010101010010101

1010000010101001001010100001001001001001000101010010
10000010

101010010001010010000100100010101001000000
1010101000010000010010010101001001000

10001010101000010010010100100000
101010001010000100100100001010001010101

101001000101001010100100101010101001010101
10100100001001010001000010010101001001

101000001010101010100100010101010101001000
10010000100000101010000010100001010100100010010

10010010100100100101000010100101000000010
10000010010010100010000001010010001001

100010
100100101

10100001000100010101010010001010101010010101010010010101
100101010101000001010010010010010010010101000101001001010101010101010010

10101000100101010101001010100010100001010001010100100101000010
1010101

1
1001000

1010000
100010101001001000

1010010101000100000001001010101010001010101001010100100101001000101001
1001001001010101000010001010000010010010101010001001010000100010010100010101010100

100001010000100100010001001000100001010100001001000100000101010010100000010001000000
1010000010001010100000100010001000000101

1000100010101000010100101010101001010100100
10010100100101001001010010010100001010101000100010010100010010101010100000100000010101000000100

100001000101010010100010001010000100010010100101010101010100101000000101010001010010101000010
1010101000100001000100101010010101000001010010000100010100101010101010000

10010100010000100100010100
10101000010000000101000100101001010001001001

1010010010001010010101001001010101010100101010010101001010101001010100101000101001010000100001
1010010101000010010000100101001

10101001000101010100100010100100010010100100101001001010001010100
10101010100000001010100101010001010100010010010101010010010100100100100001010000101010

10010001010001010000101000101000100101000010101010
101

10
1001010000010100101010101010010100101000001001010000100101000001010001

10100010010100101000101001010101001010010001000010100000100101
10101000101010000100010000010010001010101010000101010100

100010001010101010101001001010000101001010100000101000100100100001001
10101010101000010010100010101001000010001001010010101000010100010001001010101001001000

1010010100001000
1010100000000101010101010100101001010100010010100101000100010

1
10010010101001

1010100100010100010000001010001010010000100100010010100010000100010010010100010100101000
1

100101010101010001001000001010100100100010100101010101000010100100000010101000101
100101010010010010001000001010001001001010100

1010101000100100001
1001010000100010101010000100001000001010100000101001010000101010010010001000

101000010100101001001001010010010100101010101000100100010101001000001001001010
1000101010010010100100010101001000000101010000000100100100100000010101010100101001001000101

1001000100101010101010101000010100001010100010010000100101
100100100100101010010101

10000100010100100101010100
1000100100100100100101010101000101010001010101001010010010000010000101010100101000000

10101010000010010101001000100001010100010001000010100101010000101001010
1000101010000010000101000010000000010101000100100010

10010100101010000101001
1001010000100010101010100010101010101010101010001010101000

1001010101000100101000101010000101010010010000100001010100100
10000010100100001000100010000000000010000000101000101010101010010101001000000000101

1010100010001
10100000001000100010010101010000010000000000000100010010101001001001010010100010

100000010100100101010100000100100010010001001000100
100100010101001000100000001001010101010010101010100100001010100101000

100010010010010001010100101000100000101010101010010100100001
10101000001010101001001010100100100100010100101010000010100001001010000100100100

1010000010100100010101010100101010010100101001000010001001000001
101000100100101000010100010000001001001010000000101001001010101000

100010
10010000100100010001010100101010000010010100100100010001010010010000100100101

101010001010001010000100100010101010101001001010000100001010010010101001000101010100001001001010
1010000101010100100100001010000101010100100001001000101010000010100100100

100101010001010101010010001001000000100100001000010
1001001001001000

101001
10101001000000101001010101010101001010001

10010101
10001000000010010101000101010101000100101010000100101001010100

101010001001010101000101000101
101010100000001001001010100100100101000100001010100

101010100101010100001010001000101
1010010001010010101000101010100101000010010101000001010010010100010010000100001000010010001000010000

10100000101001001010100010010101010001001001010000001010100101000010001001
10100001010100000001010100010101000010000100100010000100010010010010100101001010001001000010101

101001010001010010100001010000
1000010010101001010101000100101010001010000001000101001001010000101001010000101

1000100010010010010100100101010100010101010101010001001001000001010100100100100101000001001000100
1000

1010001001010001010010101000101001010101010101001010000100001001000101010100100101010010101000010
100001000010010100010010101000101000010010101010010

10101010100100001010000100000000100101000101010010001000100100000100000001001001010100
1000101001010100100101001001000100100001010100101000101000010010010

10010101010101010010000101001010101000100101000100101010010
10100100101000100

100101010100010101010
1001000001000100001000001001001000010101010100010010010100010001001010

10000010101010001010101001010101000100010010101000100100001010010001
10000101001000101010000101001000100101

10010010100101010001000010101000010010100101010010101001000
1

10010010100101000100000010010
10101010001010100

10100101010010010101001010010101010010010101000010000010101000010010010001000
1

1010100000100101010100001000100000010010100101000100010101001001010010010
1001000100101010001

10010100010010101010100100000
10101010010001010001001000101000101010010100010100100

10101001001010001000010000100101010010100001001000100001010010101010010100010010100000
1001010001010000101000010100010100010101010000100100010001000101001010

1010100001001000100010100001000101001001010001010100100101010101000101010001010010010
10100000001000001010

1001000010001010101010101000101010101010010100100101000101010010
100010101000010101000010000010000001010100

1010010010000010101010000000101001001010100101010010001
100101000010000100000

101000
10100101010100101010000100101010100100000010100100010101010101000100010100010

1001010
1010101000001000100100101001001001000010000000101000001

10100000101010101001010010100
1010001001010010101010100100001001001010100101010

10100010000101000010100010001001010001000001010010000010100101
10101000100100010000000001010101010101010000101010010000100000000100101010000100

100001001000100010001000101010010010100010100100010100101010001010000001010100101010010101010
101010000010101010101001010001001010000100010010010001

101010100010101000100010010100101010100100000
10

1000000101000100100010010001010100100100010100010001010101010001000000010100010101001010001001000101
10010100001000100100001001001000000100

1001010100010000010101001010010101010100101001000101010000010010010010001010100
10010000100101000000000001001010101000

1010001010001010000100101001010101010010100100010101001001010010
1010101000010010010101000001010010010100100100100101010101010010001010101000101010100100101

1001010101000010101010101010010101010100001010101001000000100010000101010101
100010100010101000101000100001001010010010101

1010100100010101000101010010100101010010000100100010010001010010100001000010100010101
10100010000010010101010001000010010001001001010101010000001001001000101010000010000000010101010

10101000010101000100100010000010010
10010000100000010101000101001000000101010100001010010001010010001000010010100000101000

10000100100010101001010101010001010010100100101010001001
1010100

100101010000100100010101010100001000000010101000010101010000101000010101010100010
10101001000000101010010100100101000010100010010010001010010100010000101010000

100000001010010000101001010101001000010100101010010100010
1010101010010101010000100101000010000100000001010100010101

101010101010010001010010100101001010010010101000010101
10101001000101010100001010010010010010000001001001010101010100100010001010101001000100101010

10010010010010010101001010010010010100001001001000
100100100101010010100001001001010010101000101001000100101000001000100010100100001010010001010

1010000100100100010001010
10100010101001010010001000000010010001000010

10001010101000000001001010101000101001000101000100001010010101
1010101000010100100001

1000100
10001010100101010000010000100010001001010000101000000101010010

100100010001010100010101010101010001000001010001001000001
10100010101000001010010

1001010100101001010001001010101010000001000001010001
10001000000100101010001001000000010101010100100100

1010010101010001001000000010100001010000010000010100101000101001010101010001001010101010010
1001001010101000100101000010100100101

1001001010101010010010
101010010101000100101001010000010000101001010010100001001010010101000

10100101000100100010101010001010001001010101001010100100101000010
1000101000101010000010101001001000001001010

1001001001010000100010000100010001001000010000010101001001010010010101000100010100001001010
1000010101001001001001010101010010101010100100000100

1001010100101010100100100100010100010010100101000100101010100010100010010001010010101
10000000010010010100100101000101010010000010001000

1000100010101000101010100101010100101001000010001001000101010010101010100100100101010001000101010100
1000010010

101010000101000101001010001001001001010101010010001010010101010100000101001000010010010010001000
10010101000100101000100010100

10101000100001000100100001010000100101001
10101010001000100100000000010100100

100101000101001000000001
1001000101001001000000101001000000000001001001010000100101010100101010100100000001010100100100101

1
100100100010101000100010010100001000101001001000

101000101010001010000010100
100010010100010101001000101010010100010001010100010010101000

1001010010100001010101010100101000000001010
1001010010000100010101000010101001010101010101010001

100101001010010101001001010100100100100001010010001010100000100101010100010010101000100001000
101010001001010101010000100101000100000010101010000000010101000100100100010101010101

100001010010001000101010100001010101010000100100000101000100101000101001010000101010100100
101000100100010000100

1001
10100101010010010100101010101001000101001010010000

1000010100001010
10001010101001010100000010001000000101001

10010100000101010100010100100010000010010
10010000101010010

101001010000010101010101010100100010101000010100010
100101010101010100001001

100010101000100001010010010010010101001000100101001001010101001001010101001000100100001000000001000
10101010101000010000010010100100001

100101010101001001000100000000101010010101001
1001010100000101010101001010101001010100100001001010000000010

10100100101000001001001010010
100

1010001000010100001010100101010100100
10000100010010101010101001010

101010001010100010
10001000010101010000100001010100010000100000001010100001010001010010

101010010101010101000100
100101010010100100010101010101000101010100100010001001001010001010010010101

100100100000101000100101001001010010000010101001000100010010001
1010001000010010000001000100001010101000001010000000010001

10010100100100001001010010101000100001001010001010001010100101000
100010101010010000010010010010000101010010001000101001000010001001010001000100100101010100

10100010010100001000101010101001010101010100010000101000
1000000100000101

1010101000001001010101000101010101010101000000100101010010100100100100100010
1010001001010010001001001001000101010100101001001010010001010001001010010001

1000
1001001001010000100010101001010010000100100101001

100010101000101001001010000101001001001010
10101000001010

1010101001010100010100000000001010101010101010001000100100100010100101001000100
10010101000100000010100100010101010100000000001010010101000100010100000010101

1001010001010010001001000100001000100101010010000
10100001010010100010001010001000

101010000001010101010100100100001010010001010010001000101000000010010100100001001010010000
10010001010101001010000100000001000001000100101001000010010100010100101001010101010101001010010

101010010100010010100000101000101010000101001000010010101
1001010010100101001010100101001001010101001000

1010100001001000010010101010010101010
101010101000101010101010100101000100010100010100000101000000101010010000100010010010100

10001001000101001010100010100100010010010101001000010101010100010101001
10101000100101010101001010101001001001000010101010101000

100101010001010001010101010100100000101000010000010101001001010000101010010101
101010001001000100010100100001010100001010000101010001001010100010101010000101010010100100010001

100101000010001000000010101010101000100100000010101010100
10010

1000000010010010100000000010010010100101001010001000001
1010101001010010010000010101010010010100010010000101010100100101010010100010101010

10010100101010010100000001001001010100010101010100100101010000101
10010001010010101000100010010000010101000101010010100

100010101000
100001001010010100000001000101000100010001000100100100001000001000100100010101010010010100101001000

100000001000001000100100000010101001000101
1010101010001001010010010101010000010101000100100101000

1000001
100101010010100101000010000101010001001010010100001001010100001000

1001010001010010000100101000101000101010101001
10010010000100000010100010010100001010100100101000100010101010101001000100010100101010

1001010001000001010001010
1010001000101010100000010100100100010100101010100010010100

1001010010100100001001010100010010010000010010100001001010101010100000101
10010000000010010010000010101

10101001010000100101001010001010010
1010101010

1001000010010101010100101010
10001001001001001000001010010000101010101000010000100000100010001010

1010001001010100010010010100
10100001000010010000100

1010101010010
10001010010101001010100100100101000000010101010010010

101010010000010010101010101010101
1010101000000010000010100101000010

1000010100100100000100100010101000101010101010101010101010
10100101000100101010101000000001010101000000101010100010010010010100

10100000010000001000010000010001000101001001010010001000001001000100010100101
10001001001000100000100100100010100100010010001010001000010100101010000100001010100

10000001000101001010100010010100100100001010001000001001001010101010010000100010100100100010
101010101001

10010010010101010101000
10101010010000101010010000100101001001001010010101000100010001010101

1010010000100010000100100010010100010010101010101010010101010010001010100010001010100101001
1000101010000101000001010101010010100

10100000100010101
1010000101001010001010010101010100101

100000100010100001010010001010010101010001000000000001000100000101010
10010010010000000010100101010010100101000010101000101000100010101010000101010101001

1000001010101010010100001001001
10010010010010101010101010010100010100010010101010100100001010100001010100

1
10100101010

101001000010
100010000101000101010100101010100001010100101000000100100000

10001010010010010010010010101010101000001000101001010001010
100100000001010101000100101010

1001000010010010010100101001000010101000101010100100100000101001001010100010001001000100100101001000
101001000001001000000001000001001010001000010100101001010010100101000010001001010101010001010100

100001010001000010010001010000100000101010
100100010100100101010010000101000000000

101010101001001010010101000100010001000100010000101001010101010010
100100000100010101010010101001010100100101010010100100100010100

1001010101000001000
1010

10000
10010101010010100000010101010101010001001010001001010100

100100010100101010010010001010101000000010100000101000001010
10100001000001000

1010000000001010101010100101010100000000101010100101001010100100100010000100101000000010101001010100
1001000100010

10001000010001001001001000010010010100010000100101000000001001001010001001
101001010010100010010100010001000100100010100001

101001010010101010101010
10001000101000100010001010101010001001010100010100100010101010010100010010000100010000

1000100000101000001010010001000101010001000
1000001001001010010100010100100000010000010001001001000010100010010010010100101010100010100100001010

10100100010100001010101010001010010010101001001
1000100101010010001010100010

10100100001000100100001
10100010100001010010101010100100010010000000101010101010010101000101010001000101010100101001010

10000101010100000100000010100001010000010010100000100000101001010101010001001010001001
10010001001010010010000010010100010101

10101001
100000100101010101001010101010100010100001001010100101001001010100000100101

1001010100100101000010000101000000000000101000100100001000010100100101000100000000100100101010101010
101010100010100000000100101001010001010100100100100101

100010010010100010101010100010101010100100010101000101010001010100100100100101
1001010010000101010010101010101

100001000101000100100101010010101010101000010101001
10001001010100010100100101010100000100001000010100101010001000001001000000001001

101
10010010101010

10101001010101001010010101000101000100100100101010001000010100
10101000010001001010101010100101010010101010001010010010101010101000101

10100000101000101010010101010100100000100010101000101010100010
101010000101010100101001010101010010001010100100100001000000101000000010101010001001010001010101000

100000010001000101001000100001010100001000101010101010001000010000001001001001010010101010000010100
10100010001000100100000100100100101000101010010001

10010010100100010101
1010000010100101010101001010101000101001000010101010010100100

101001001001001
101010101001000100101010010010010000010101010010001001000

1001001001001001000000100
10010001010001000100000101010000100010101001

1001010000100101000100100
10010001010000101010101010000001001000010010100101001001010001010100100010000100101001010

1000101010100010001010001010010010100010001
10101001001010001010

10100
101000001010100100

101000101010100001000010
100101010101001001010001010010101001000100010100010010100000101010010

1010101000
100100100101010010101000000100001

10100000010010010010010000010000010100101010100010100000100101010100010001010010101
100010100101010

10101000010101001010000010101000000101001010100101000100100010101
10010010010010001

1001001010000001010101010101001010010001001010
1010010000100010101000001010

1010001000010101000001010010
10010010001010000100101010100100101001010000010100010010101000001001010100101000001

10010000101000101010010100010010000101
1

10101000101000101010101001010000100101001010000010101010010001010001
1000000101010010100010010100010100001010101010001001010100100001000010101010000000101000001010

100100
10000010100100001001010010001000100101010100101001000

101001010000010101001010101010100100100010000001010000100010101
100101010010000000010001000010101010010101010100100100001

100101010001001001001001010000101010100101010010
101

101001010000100101001001010101000100100100000100101
1010100101000001

101000100000100101010010001000010010
100101010000001000101000010100101010010100101010101000000100000100101

10001001001010001010100010010100100001010101000100001000010010101001001001010
10010100001010010010000010010101001000101000000010100100000

10100101000101010100010010001010001001010101010101000101010
1010101000101010100101000100101010101000000101010010010010101000000100000001010100101000010101000001

101010010100001010010100000101001001010100101000100100100000101010001000100101010
100000100101010100100100

10101010001
1001000101000001

1001010100000101001001010101000001001000100100101010000100001001001001010
10101010010010

1010101000010100100101000101001001001010100100000100101001010100010100101
1010001010000100000001000101010001000001000000101010100010001001010101000000000010

10010
1001000010010100100001010101010010000001001001010101010001010

10100001010100101000100010101000101010100101
1000000001010100000101010101001010000101000001000101001000000101010001010000000100000

101010100001000101000001001000101001010101001001001000100101001001010010000100
10000100

101010000101000100100100100001010001010001010010101010101000000000100101001001010010001
100101010000010100101001010101000010101001000010100001010101010001010101010000

100010100101001010010100100100100001001001000100100000101001000010101010001010010
100010100101010010101

100010101001001010010101001001000010101000010101001010010000
101010100001000000

10101010010101000000010001010101001010001000101001000100100000000100010
101000101010101010000010100010010100100001000000010100001010010010101010100100101001010010001

100010100100101000101010010100010100101010100100100010100101000001010001010101010
1001001010010001000000010001010100100100100100010100010100100101010100100010101010100100000010010001

10010000101010100100001010100010001001001010000000100000101010101001001010
101010000

1001010100010000001000001010001010101001010
101010100100010001001001010010101001001010100100001010

100000100101010010010100100000010001000100010000000101010100010100010
1000000101001000100000100001000100100010100101010

10100001010010101010100101000100101010101000000101010100100100100100101010010100001010
10100010000101010101010010100010101010000001010000001000101000101001001000010101

101001001010010100010000100100101001000100
1000100000101000100000100101010010000000101001000101000000100101000001010000010001010101

10001010010101001010100010000001000000100100010000101000101010010101001000101001010
1010001001001010100010000

100101001000100101010001000001001001010100101001010001010010100000001001
1010

101001010001010100000001010100100101001
10100100101000000100101001010101010010101010010100100010010010100101010100100001010

10100100101010101010100001001010000100100010101000010100010010010100101001001010010000100100
10001010001010010101000010010101001000

10101000100001010010101010000000100100101010001010100101000101010
10100000010010101010101010010100

100001010010001010101010100100000001010101000010001010100101000010101001001001010010010
101000101001001000010001010000101010100

101010010101010101001000010101001010010100101010001
1

1000101010000010100001010010000
101010100101001010010000001000010000100101010101000001000010101001000101010101001010001

100010100001010010010010101010010010010100010001000100101000001
101000101010100001010101000100000100100010001

101010100001
10010000100100010000000010000100100001001010101010001010010010001000010000001001010101001001

10010010010101010100101
1010010100100

1000010010001
101010010101000101000101000000010001001000101000100000001

100101010010100100100000100000010101010101010100
1001001010101001010101010010100101001001001001010010001001001000010010100000101010100010

101010010001010000010000001000
101001001010000101010001010100010010001000101010001010000001

10000010010100101010100010010010000100001010101010101010010001010100010100000100100010000101010
100101000000100001010010001001010010100101010

10101001000100000100000100100100101010100100100101000100
101010000000101010000010100010100101000100101000000000101000100001010001

10000001010100101010
1001010001000000000001010010101010000101010001010100000010101010101001001010101000100001010010100101

101010000100100000100100010010100
10101000101010100010101010100101010001010101010

100010101001010100000100
1001000010100000100100010101010000100100100000101001000000010010101001001010100010

1000100101010010100101010010000010010000100001010100100101000000
1010000000001000101001010100010000100101010100010001000100101010001000100000101010100001

101000101000101
10000101001000101010000001001010101001000101010001001010001010100000000100

101000101010100010000101010101010010100100
1010001001010000100001010010001010100001001010100000010100000000

1010001001010010100101000100010000010001000101001001001000101000100001010101010101
1001010000000010010000100001010

100010101010100
10010100010001000100010100001010010100100100000010100101000100101001010010100010101010010000

10100000101001010010000100100010000100100101000
1000101010101001001010

10001010001000010100010100010001010100010
101000100100101010101

10000010100010000010000010100010101000001000101010100101010
1010100010010101001010100000100101001001001010100100010

1010101010010010101001010101010010010100001001010001001010101001001000001010100101010
10101000101

100100001010100010101000101010010010000100010101
1001010010

1010100100101000000001001010010101010001001001010100100010101
100100010100

101000010101010010000100010000010100010001000010000101000000000010101010100010100101010101010001010
1010101010100010000101010000101000010010001010101000000001010000010100100101010100

100010001010010100100010
10101010100010010010010010100010010010100100001010100001010101001000001010101010

10101000100010000100101010000010100101010000100101001000000001001000100010101010010010
1010010010000000100000010010101010100010101001001000000010

100001001
10101001001001001001001010100101

10001000101010000101010000010001010010010100010001001001000101001000100
10010101001001001010010101001000100100101010101000001010010000001010

10001000101000100101010101010100010001
1000001010010001001010010100010101000101010101010010100

10000100000010101010101000
1000010010010100001

10010100010100001010100101000100101000010001010010101001001010101000000100001
10010100010100101010010101010000100101001000101010010001

101001000001001000101001001010
1000010100000101000000010100010100010100010100101010001000101001010101000000101000000101001001

1001001001000001010010100010001000101010101010100000100010100100010010000001001010
1000100101000101001001000001001010001001001000010100000

1010101010100101001010000000100000001010001000010101010000010101000100000
1010100100100000100000100010100100010100100101010010000010010001000010101001000

10101010010010000101001000001010010101001010101010010100100010101010000100000101
101010010010101010100010000

1010100101001010101010001010101010101001001010010100100001010101000010
1010000100101010100101010100101010101010010001000101010101000101010010101001000001

101000000000101000000010000100000000100010001000100100010100010001001010100010001000001000101010
10010010000001000101001010010010001010000010100001

100100100101010010010100100000100010010100101010010000101010000
10100101001010001001

101
10010100101001010101010010101001001001000100100001001000010100100100001

10010100100010100000101010010101010010010001001010000010101010
1010100001010101000010100010010101001001001001000001000010101001010100101010100010100100000101001

10
100100

1010101001001001000010101010
10101001001010100101001010100010101000010000101010100010100101010

100101010001000101
1010010100100001000000101001010100010101010

10010101010100
100010101001000010100001010000101010000101010010000100000001010001010101010101010010100010000010

101
10101010

10001000001001001000001001010101010010010010001001
10101000101010001000010101000001001000100101010100010

100100010101010000100000100101000100100100101010100101010000000000001001010101
10101010010010010101000101000100000000001010101000010

1000101000000101000100000100010100000101010010001000100001000100101000101010010100100101010101010010
1010100101001001001010

100010010100101000010101010010010101001000010100101001010000101
1010010010000010101001010010001001001010010101001000000000010010101000010

1001010000010101010010001000100000100100001000010
10000101010000001001001010010100101001000100010001010100101

10001001010100101010000010010001010010010001000
100101

1001
1010010100100100101000010100010010100010100010

10001010010000010101010100010010100101000001010101010001010010101000010100100010
10000100010101010010100010100000100000101000010010010101001001000100100010

1010001010000101000101000101010000001
101001000010101001010000000000100101001010010101010010100

1001000100010101010101000101010101001
101001000000100101010101000001000101010010000001010010001010000100100000000

10101000001000000100100101010101
10010100101001010001000101010010100010101001001001010100000010100100

10010010100000101010100100001010101010100000
10010010010100101000001010101010001010000010001000101000001010010000100100010101010010101

1000100100010100000100101010
100010101001010100000010010100000010101010001010010000010010100100100001010100101010

10100
101010100
stdout
Standard output is empty
stderr
*** Error in `./prog': malloc(): memory corruption: 0x0876e9c8 ***