aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Jacoby <jacoby.david@gmail.com>2020-07-13 15:48:43 -0400
committerDave Jacoby <jacoby.david@gmail.com>2020-07-13 15:48:43 -0400
commit3abb2d4aa46c6d2627a8a4d7a4557f0d4835b2e3 (patch)
tree064f24a295a5c2d9c674833d25251788d9f9468a
parent29b45dc080e1a5d10e6211710d5975c4fdde2928 (diff)
downloadperlweeklychallenge-club-3abb2d4aa46c6d2627a8a4d7a4557f0d4835b2e3.tar.gz
perlweeklychallenge-club-3abb2d4aa46c6d2627a8a4d7a4557f0d4835b2e3.tar.bz2
perlweeklychallenge-club-3abb2d4aa46c6d2627a8a4d7a4557f0d4835b2e3.zip
Task #2
-rwxr-xr-xchallenge-069/dave-jacoby/perl/ch-2.pl58
-rw-r--r--challenge-069/dave-jacoby/perl/s20.txt14980
2 files changed, 15038 insertions, 0 deletions
diff --git a/challenge-069/dave-jacoby/perl/ch-2.pl b/challenge-069/dave-jacoby/perl/ch-2.pl
new file mode 100755
index 0000000000..8054823821
--- /dev/null
+++ b/challenge-069/dave-jacoby/perl/ch-2.pl
@@ -0,0 +1,58 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature qw{ say signatures state };
+no warnings qw{ experimental::signatures };
+
+my $val = '';
+my $m;
+for my $n ( 1 .. 20 ) {
+ $val = task2($val);
+ $m = $n;
+}
+display( $m, $val );
+
+# display and _line are functions written to break up the long
+# input to something far easier to read.
+sub display ( $n, $val ) {
+ my $x = 70;
+ my $l = 0;
+ while ( length $val >= $x ) {
+ my $line = substr( $val, 0, $x );
+ substr( $val, 0, $x ) = '';
+ _line( $l++, $n, $line );
+ }
+ _line( $l, $n, $val );
+}
+
+sub _line ( @input ) {
+ say join "\t", @input;
+}
+
+# the definition of the function is
+# SN = SN-1 + “0” + switch(reverse(SN-1))
+# and the + is concatenation, not mathematical
+sub task2 ( $input ) {
+ my $output = join '', $input, '0', _switch( reverse($input) );
+ return $output;
+}
+
+# we already have a reverse function in Perl, but this does
+# something different. returns an empty string if given one,
+# and the string, reversed
+sub _reverse ( $string ) {
+ return $string if length $string == 0;
+ return join '', reverse split //, $string;
+}
+
+# again, there exists a Perl thing with this name, that does
+# a very different. I suppose I could've done this as bitwise
+# or instead, but I'm already handling everything as a string
+sub _switch ( $string ) {
+ my $output = '';
+ for my $c ( split //, $string ) {
+ $output .= $c ? '0' : '1';
+ }
+ return $output;
+}
diff --git a/challenge-069/dave-jacoby/perl/s20.txt b/challenge-069/dave-jacoby/perl/s20.txt
new file mode 100644
index 0000000000..ed3129c7ad
--- /dev/null
+++ b/challenge-069/dave-jacoby/perl/s20.txt
@@ -0,0 +1,14980 @@
+0 20 0010110011010010110100110010110011010011001011010010110011010010110100
+1 20 1100101101001011001101001100101100110100101101001100101100110100110010
+2 20 1101001011001101001100101100110100101101001100101101001011001101001011
+3 20 0100110010110011010011001011010010110011010010110100110010110100101100
+4 20 1101001100101100110100101101001100101101001011001101001011010011001011
+5 20 0011010011001011010010110011010011001011001101001011010011001011001101
+6 20 0011001011010010110011010010110100110010110100101100110100110010110011
+7 20 0100101101001100101100110100110010110100101100110100110010110011010010
+8 20 1101001100101101001011001101001011010011001011001101001100101101001011
+9 20 0011010011001011001101001011010011001011001101001100101101001011001101
+10 20 0010110100110010110100101100110100110010110011010010110100110010110100
+11 20 1011001101001011010011001011001101001100101101001011001101001011010011
+12 20 0010110100101100110100110010110011010010110100110010110011010011001011
+13 20 0100101100110100110010110011010010110100110010110100101100110100101101
+14 20 0011001011001101001100101101001011001101001011010011001011010010110011
+15 20 0100110010110011010010110100110010110100101100110100101101001100101100
+16 20 1101001100101101001011001101001100101100110100101101001100101100110100
+17 20 1100101101001011001101001011010011001011010010110011010011001011001101
+18 20 0010110100110010110100101100110100101101001100101100110100110010110100
+19 20 1011001101001011010011001011010010110011010011001011001101001011010011
+20 20 0010110011010011001011010010110011010011001011001101001011010011001011
+21 20 0100101100110100101101001100101100110100110010110100101100110100110010
+22 20 1100110100101101001100101100110100110010110100101100110100101101001100
+23 20 1011010010110011010011001011001101001011010011001011001101001100101101
+24 20 0010110011010011001011001101001011010011001011010010110011010010110100
+25 20 1100101100110100110010110100101100110100101101001100101101001011001101
+26 20 0011001011001101001011010011001011010010110011010010110100110010110011
+27 20 0100110010110100101100110100110010110011010010110100110010110011010011
+28 20 0010110100101100110100101101001100101101001011001101001100101100110100
+29 20 1011010011001011001101001100101101001011001101001100101100110100101101
+30 20 0011001011010010110011010010110100110010110011010011001011010010110011
+31 20 0100110010110011010010110100110010110011010011001011010010110011010010
+32 20 1101001100101101001011001101001100101100110100101101001100101101001011
+33 20 0011010010110100110010110011010011001011010010110011010010110100110010
+34 20 1101001011001101001100101100110100101101001100101100110100110010110100
+35 20 1011001101001100101100110100101101001100101101001011001101001011010011
+36 20 0010110011010011001011010010110011010011001011001101001011010011001011
+37 20 0011010011001011010010110011010010110100110010110100101100110100110010
+38 20 1100110100101101001100101100110100110010110100101100110100110010110011
+39 20 0100101101001100101101001011001101001011010011001011001101001100101101
+40 20 0010110011010010110100110010110100101100110100110010110011010010110100
+41 20 1100101101001011001101001011010011001011001101001100101101001011001101
+42 20 0011001011001101001011010011001011001101001100101101001011001101001011
+43 20 0100110010110100101100110100110010110011010010110100110010110100101100
+44 20 1101001011010011001011001101001100101101001011001101001011010011001011
+45 20 0100101100110100110010110011010010110100110010110011010011001011010010
+46 20 1100110100110010110011010010110100110010110100101100110100101101001100
+47 20 1011001101001100101101001011001101001011010011001011010010110011010011
+48 20 0010110011010010110100110010110100101100110100101101001100101100110100
+49 20 1100101101001011001101001100101100110100101101001100101100110100110010
+50 20 1101001011001101001011010011001011010010110011010011001011001101001011
+51 20 0100110010110011010011001011010010110011010011001011001101001011010011
+52 20 0010110100101100110100101101001100101100110100110010110100101100110100
+53 20 1100101100110100101101001100101100110100110010110100101100110100101101
+54 20 0011001011010010110011010011001011001101001011010011001011010010110011
+55 20 0100101101001100101100110100110010110100101100110100101101001100101101
+56 20 0010110011010011001011001101001011010011001011001101001100101101001011
+57 20 0011010011001011001101001011010011001011010010110011010010110100110010
+58 20 1100110100110010110100101100110100101101001100101101001011001101001100
+59 20 1011001101001011010011001011010010110011010010110100110010110011010011
+60 20 0010110100101100110100110010110011010010110100110010110011010011001011
+61 20 0100101100110100101101001100101101001011001101001100101100110100101101
+62 20 0011001011010010110011010010110100110010110011010011001011010010110011
+63 20 0100101101001100101101001011001101001100101100110100101101001100101100
+64 20 1101001100101101001011001101001100101100110100101101001100101101001011
+65 20 0011010010110100110010110011010011001011010010110011010011001011001101
+66 20 0010110100110010110011010011001011010010110011010010110100110010110100
+67 20 1011001101001100101100110100101101001100101100110100110010110100101100
+68 20 1101001100101100110100101101001100101101001011001101001011010011001011
+69 20 0011010011001011010010110011010010110100110010110100101100110100110010
+70 20 1100110100101101001100101101001011001101001011010011001011001101001100
+71 20 1011010010110011010011001011001101001011010011001011001101001100101101
+72 20 0010110011010010110100110010110100101100110100110010110011010010110100
+73 20 1100101101001011001101001011010011001011001101001100101101001011001101
+74 20 0010110100110010110100101100110100110010110011010010110100110010110011
+75 20 0100110010110100101100110100110010110011010010110100110010110100101100
+76 20 1101001011010011001011001101001100101101001011001101001011010011001011
+77 20 0100101100110100110010110011010010110100110010110100101100110100101101
+78 20 0011001011001101001100101101001011001101001100101100110100101101001100
+79 20 1011001101001100101101001011001101001011010011001011010010110011010011
+80 20 0010110011010010110100110010110011010011001011010010110011010011001011
+81 20 0011010010110100110010110100101100110100101101001100101100110100110010
+82 20 1101001011001101001100101100110100101101001100101100110100110010110100
+83 20 1011001101001011010011001011010010110011010011001011001101001011010011
+84 20 0010110100101100110100101101001100101100110100110010110100101100110100
+85 20 1011010011001011010010110011010011001011001101001011010011001011001101
+86 20 0011001011010010110011010011001011001101001011010011001011010010110011
+87 20 0100101101001100101100110100110010110100101100110100110010110011010010
+88 20 1101001100101100110100110010110100101100110100101101001100101101001011
+89 20 0011010011001011001101001011010011001011001101001100101101001011001101
+90 20 0011001011001101001011010011001011010010110011010010110100110010110011
+91 20 0100110010110100101100110100101101001100101101001011001101001100101100
+92 20 1101001011010011001011010010110011010010110100110010110011010011001011
+93 20 0100101100110100110010110011010010110100110010110011010011001011010010
+94 20 1100110100101101001100101101001011001101001100101100110100101101001100
+95 20 1011001101001100101101001011001101001100101100110100101101001100101101
+96 20 0010110011010010110100110010110011010011001011010010110011010011001011
+97 20 0011010010110100110010110011010011001011010010110011010010110100110010
+98 20 1101001011001101001100101100110100101101001100101101001011001101001011
+99 20 0100110010110011010011001011010010110011010010110100110010110100101100
+100 20 1101001100101100110100101101001100101100110100110010110100101100110100
+101 20 1100101100110100101101001100101101001011001101001011010011001011001101
+102 20 0011001011010010110011010010110100110010110100101100110100110010110011
+103 20 0100101101001100101101001011001101001011010011001011001101001100101101
+104 20 0010110011010011001011001101001011010011001011001101001100101101001011
+105 20 0011010010110100110010110100101100110100110010110011010010110100110010
+106 20 1101001011001101001011010011001011001101001100101101001011001101001011
+107 20 0100110010110100101100110100110010110011010010110100110010110011010011
+108 20 0010110100101100110100110010110011010010110100110010110100101100110100
+109 20 1011010011001011001101001100101101001011001101001100101100110100101101
+110 20 0011001011001101001100101101001011001101001011010011001011010010110011
+111 20 0100110010110011010010110100110010110011010011001011010010110011010011
+112 20 0010110011010010110100110010110100101100110100101101001100101100110100
+113 20 1100101101001011001101001011010011001011010010110011010011001011001101
+114 20 0010110100110010110100101100110100101101001100101100110100110010110100
+115 20 1011001101001100101100110100101101001100101100110100110010110100101100
+116 20 1101001011010011001011010010110011010011001011001101001011010011001011
+117 20 0011010011001011010010110011010011001011001101001011010011001011010010
+118 20 1100110100101101001100101100110100110010110100101100110100110010110011
+119 20 0100101101001100101100110100110010110100101100110100101101001100101101
+120 20 0010110011010011001011001101001011010011001011010010110011010010110100
+121 20 1100101100110100110010110100101100110100101101001100101101001011001101
+122 20 0011001011001101001011010011001011001101001100101101001011001101001100
+123 20 1011001101001011010011001011010010110011010010110100110010110011010011
+124 20 0010110100101100110100110010110011010010110100110010110011010011001011
+125 20 0100101100110100101101001100101101001011001101001100101100110100101101
+126 20 0011001011001101001100101101001011001101001100101100110100101101001100
+127 20 1011010010110011010010110100110010110011010011001011010010110011010010
+128 20 1101001100101101001011001101001100101100110100101101001100101101001011
+129 20 0011010010110100110010110011010011001011010010110011010011001011001101
+130 20 0010110100110010110011010011001011010010110011010010110100110010110100
+131 20 1011001101001100101100110100101101001100101101001011001101001011010011
+132 20 0010110011010011001011010010110011010010110100110010110100101100110100
+133 20 1100101100110100101101001100101100110100110010110100101100110100110010
+134 20 1100110100101101001100101101001011001101001011010011001011001101001100
+135 20 1011010010110011010010110100110010110100101100110100110010110011010010
+136 20 1101001100101101001011001101001011010011001011001101001100101101001011
+137 20 0011010011001011001101001011010011001011001101001100101101001011001101
+138 20 0010110100110010110100101100110100110010110011010010110100110010110011
+139 20 0100110010110100101100110100110010110011010010110100110010110100101100
+140 20 1101001011010011001011001101001100101101001011001101001100101100110100
+141 20 1011010011001011001101001100101101001011001101001011010011001011010010
+142 20 1100110100110010110011010010110100110010110100101100110100101101001100
+143 20 1011001101001100101101001011001101001011010011001011010010110011010011
+144 20 0010110011010010110100110010110011010011001011010010110011010011001011
+145 20 0011010010110100110010110100101100110100101101001100101100110100110010
+146 20 1101001011001101001100101100110100101101001100101100110100110010110100
+147 20 1011001101001011010011001011010010110011010011001011001101001011010011
+148 20 0010110011010011001011010010110011010011001011001101001011010011001011
+149 20 0100101100110100101101001100101100110100110010110100101100110100101101
+150 20 0011001011010010110011010011001011001101001011010011001011010010110011
+151 20 0100101101001100101100110100110010110100101100110100110010110011010010
+152 20 1101001100101100110100110010110100101100110100101101001100101101001011
+153 20 0011010011001011001101001011010011001011001101001100101101001011001101
+154 20 0011001011001101001011010011001011010010110011010010110100110010110011
+155 20 0100110010110100101100110100110010110011010010110100110010110011010011
+156 20 0010110100101100110100101101001100101101001011001101001100101100110100
+157 20 1011010011001011010010110011010010110100110010110011010011001011010010
+158 20 1100110100101101001100101101001011001101001100101100110100101101001100
+159 20 1011001101001100101101001011001101001100101100110100101101001100101101
+160 20 0010110011010010110100110010110011010011001011010010110011010010110100
+161 20 1100101101001011001101001100101100110100101101001100101101001011001101
+162 20 0010110100110010110011010011001011010010110011010011001011001101001011
+163 20 0100110010110011010011001011010010110011010010110100110010110100101100
+164 20 1101001100101100110100101101001100101101001011001101001011010011001011
+165 20 0011010011001011010010110011010010110100110010110100101100110100110010
+166 20 1100110100101101001100101100110100110010110100101100110100110010110011
+167 20 0100101101001100101101001011001101001011010011001011001101001100101101
+168 20 0010110011010011001011001101001011010011001011001101001100101101001011
+169 20 0011010010110100110010110100101100110100110010110011010010110100110010
+170 20 1100110100110010110100101100110100110010110011010010110100110010110100
+171 20 1011001101001011010011001011001101001100101101001011001101001011010011
+172 20 0010110100101100110100110010110011010010110100110010110100101100110100
+173 20 1011010011001011001101001100101101001011001101001100101100110100101101
+174 20 0011001011001101001100101101001011001101001011010011001011010010110011
+175 20 0100110010110011010010110100110010110100101100110100101101001100101100
+176 20 1101001100101101001011001101001011010011001011010010110011010011001011
+177 20 0011010010110100110010110011010011001011010010110011010011001011001101
+178 20 0010110100110010110100101100110100101101001100101100110100110010110100
+179 20 1011001101001011010011001011010010110011010011001011001101001011010011
+180 20 0010110100101100110100101101001100101100110100110010110100101100110100
+181 20 1100101100110100101101001100101100110100110010110100101100110100101101
+182 20 0011001011010010110011010011001011001101001011010011001011001101001100
+183 20 1011010010110011010011001011001101001011010011001011010010110011010010
+184 20 1101001100101100110100110010110100101100110100110010110011010010110100
+185 20 1100101100110100110010110100101100110100101101001100101101001011001101
+186 20 0011001011001101001011010011001011010010110011010010110100110010110011
+187 20 0100110010110100101100110100101101001100101101001011001101001100101100
+188 20 1101001011010011001011001101001100101101001011001101001100101100110100
+189 20 1011010011001011010010110011010010110100110010110011010011001011010010
+190 20 1100110100101101001100101101001011001101001100101100110100101101001100
+191 20 1011010010110011010010110100110010110011010011001011010010110011010011
+192 20 0010110011010010110100110010110011010011001011010010110011010010110100
+193 20 1100101101001011001101001100101100110100101101001100101101001011001101
+194 20 0010110100110010110011010011001011010010110011010010110100110010110100
+195 20 1011001101001100101100110100101101001100101100110100110010110100101100
+196 20 1101001100101100110100101101001100101101001011001101001011010011001011
+197 20 0011010011001011010010110011010011001011001101001011010011001011001101
+198 20 0011001011010010110011010010110100110010110100101100110100110010110011
+199 20 0100101101001100101100110100110010110100101100110100110010110011010010
+200 20 1101001100101101001011001101001011010011001011001101001100101101001011
+201 20 0011010010110100110010110100101100110100110010110011010010110100110010
+202 20 1101001011001101001011010011001011001101001100101101001011001101001100
+203 20 1011001101001011010011001011001101001100101101001011001101001011010011
+204 20 0010110100101100110100110010110011010010110100110010110011010011001011
+205 20 0100101100110100110010110011010010110100110010110100101100110100101101
+206 20 0011001011001101001100101101001011001101001100101100110100101101001100
+207 20 1011001101001100101101001011001101001011010011001011010010110011010011
+208 20 0010110011010010110100110010110100101100110100101101001100101100110100
+209 20 1100101101001011001101001011010011001011010010110011010011001011001101
+210 20 0010110100110010110011010011001011010010110011010011001011001101001011
+211 20 0100110010110100101100110100101101001100101100110100110010110100101100
+212 20 1101001100101100110100101101001100101100110100110010110100101100110100
+213 20 1011010011001011010010110011010011001011001101001011010011001011001101
+214 20 0011001011010010110011010011001011001101001011010011001011010010110011
+215 20 0100101101001100101100110100110010110100101100110100101101001100101101
+216 20 0010110011010011001011001101001011010011001011010010110011010010110100
+217 20 1100101100110100110010110100101100110100110010110011010010110100110010
+218 20 1100110100110010110100101100110100101101001100101101001011001101001100
+219 20 1011001101001011010011001011010010110011010010110100110010110011010011
+220 20 0010110100101100110100101101001100101101001011001101001100101100110100
+221 20 1011010011001011001101001100101101001011001101001100101100110100101101
+222 20 0011001011010010110011010010110100110010110011010011001011010010110011
+223 20 0100101101001100101101001011001101001100101100110100101101001100101101
+224 20 0010110011010010110100110010110011010011001011010010110011010011001011
+225 20 0011010010110100110010110011010011001011010010110011010010110100110010
+226 20 1101001011001101001100101100110100101101001100101100110100110010110100
+227 20 1011001101001100101100110100101101001100101101001011001101001011010011
+228 20 0010110011010011001011010010110011010011001011001101001011010011001011
+229 20 0011010011001011010010110011010010110100110010110100101100110100110010
+230 20 1100110100101101001100101101001011001101001011010011001011001101001100
+231 20 1011010010110011010010110100110010110100101100110100110010110011010010
+232 20 1101001100101100110100110010110100101100110100110010110011010010110100
+233 20 1100101101001011001101001011010011001011001101001100101101001011001101
+234 20 0010110100110010110100101100110100110010110011010010110100110010110100
+235 20 1011001101001011010011001011001101001100101101001011001101001100101100
+236 20 1101001011010011001011001101001100101101001011001101001011010011001011
+237 20 0100101100110100110010110011010010110100110010110100101100110100101101
+238 20 0011001011001101001100101101001011001101001011010011001011010010110011
+239 20 0100110010110011010010110100110010110011010011001011010010110011010011
+240 20 0010110011010010110100110010110100101100110100101101001100101100110100
+241 20 1100101101001011001101001100101100110100101101001100101100110100110010
+242 20 1101001011001101001011010011001011010010110011010011001011001101001011
+243 20 0100110010110011010011001011010010110011010011001011001101001011010011
+244 20 0010110100101100110100101101001100101100110100110010110100101100110100
+245 20 1011010011001011010010110011010011001011001101001011010011001011010010
+246 20 1100110100101101001100101100110100110010110100101100110100110010110011
+247 20 0100101101001100101100110100110010110100101100110100101101001100101101
+248 20 0010110011010011001011001101001011010011001011010010110011010010110100
+249 20 1100101100110100110010110100101100110100101101001100101101001011001101
+250 20 0011001011001101001011010011001011001101001100101101001011001101001100
+251 20 1011001101001011010011001011010010110011010010110100110010110011010011
+252 20 0010110100101100110100101101001100101101001011001101001100101100110100
+253 20 1011010011001011010010110011010010110100110010110011010011001011010010
+254 20 1100110100110010110011010010110100110010110011010011001011010010110011
+255 20 0100101101001100101101001011001101001100101100110100101101001100101100
+256 20 1101001100101101001011001101001100101100110100101101001100101101001011
+257 20 0011010010110100110010110011010011001011010010110011010011001011001101
+258 20 0010110100110010110011010011001011010010110011010010110100110010110100
+259 20 1011001101001100101100110100101101001100101101001011001101001011010011
+260 20 0010110011010011001011010010110011010010110100110010110100101100110100
+261 20 1100101100110100101101001100101100110100110010110100101100110100110010
+262 20 1100110100101101001100101101001011001101001011010011001011001101001100
+263 20 1011010010110011010011001011001101001011010011001011001101001100101101
+264 20 0010110011010010110100110010110100101100110100110010110011010010110100
+265 20 1100101100110100110010110100101100110100110010110011010010110100110010
+266 20 1101001011001101001011010011001011001101001100101101001011001101001011
+267 20 0100110010110100101100110100110010110011010010110100110010110100101100
+268 20 1101001011010011001011001101001100101101001011001101001100101100110100
+269 20 1011010011001011001101001100101101001011001101001011010011001011010010
+270 20 1100110100110010110011010010110100110010110011010011001011010010110011
+271 20 0100110010110011010010110100110010110100101100110100101101001100101100
+272 20 1101001100101101001011001101001100101100110100101101001100101100110100
+273 20 1100101101001011001101001011010011001011010010110011010011001011001101
+274 20 0010110100110010110100101100110100101101001100101100110100110010110100
+275 20 1011001101001011010011001011010010110011010011001011001101001011010011
+276 20 0010110011010011001011010010110011010011001011001101001011010011001011
+277 20 0100101100110100101101001100101100110100110010110100101100110100101101
+278 20 0011001011010010110011010011001011001101001011010011001011010010110011
+279 20 0100101101001100101100110100110010110100101100110100110010110011010010
+280 20 1101001100101100110100110010110100101100110100101101001100101101001011
+281 20 0011010011001011001101001011010011001011010010110011010010110100110010
+282 20 1100110100110010110100101100110100101101001100101101001011001101001100
+283 20 1011001101001011010011001011001101001100101101001011001101001100101100
+284 20 1101001011010011001011010010110011010010110100110010110011010011001011
+285 20 0100101100110100110010110011010010110100110010110011010011001011010010
+286 20 1100110100101101001100101101001011001101001100101100110100101101001100
+287 20 1011001101001100101101001011001101001100101100110100101101001100101101
+288 20 0010110011010010110100110010110011010011001011010010110011010010110100
+289 20 1100101101001011001101001100101100110100101101001100101101001011001101
+290 20 0010110100110010110011010011001011010010110011010011001011001101001011
+291 20 0100110010110011010011001011010010110011010010110100110010110100101100
+292 20 1101001100101100110100101101001100101101001011001101001011010011001011
+293 20 0011010011001011010010110011010010110100110010110100101100110100110010
+294 20 1100110100101101001100101100110100110010110100101100110100110010110011
+295 20 0100101101001100101101001011001101001011010011001011001101001100101101
+296 20 0010110011010010110100110010110100101100110100110010110011010010110100
+297 20 1100101101001011001101001011010011001011001101001100101101001011001101
+298 20 0011001011001101001011010011001011001101001100101101001011001101001011
+299 20 0100110010110100101100110100110010110011010010110100110010110011010011
+300 20 0010110100101100110100110010110011010010110100110010110100101100110100
+301 20 1011010011001011001101001100101101001011001101001100101100110100101101
+302 20 0011001011001101001100101101001011001101001011010011001011010010110011
+303 20 0100110010110011010010110100110010110100101100110100101101001100101100
+304 20 1101001100101101001011001101001011010011001011010010110011010011001011
+305 20 0011010010110100110010110011010011001011010010110011010011001011001101
+306 20 0010110100110010110100101100110100101101001100101100110100110010110100
+307 20 1011001101001011010011001011010010110011010011001011001101001011010011
+308 20 0010110100101100110100101101001100101100110100110010110100101100110100
+309 20 1100101100110100101101001100101100110100110010110100101100110100101101
+310 20 0011001011010010110011010011001011001101001011010011001011010010110011
+311 20 0100101101001100101100110100110010110100101100110100101101001100101101
+312 20 0010110011010011001011001101001011010011001011001101001100101101001011
+313 20 0011010011001011001101001011010011001011010010110011010010110100110010
+314 20 1100110100110010110100101100110100110010110011010010110100110010110011
+315 20 0100110010110100101100110100101101001100101101001011001101001100101100
+316 20 1101001011010011001011001101001100101101001011001101001100101100110100
+317 20 1011010011001011010010110011010010110100110010110011010011001011010010
+318 20 1100110100101101001100101101001011001101001100101100110100101101001100
+319 20 1011010010110011010010110100110010110011010011001011010010110011010011
+320 20 0010110011010010110100110010110011010011001011010010110011010010110100
+321 20 1100101101001011001101001100101100110100101101001100101100110100110010
+322 20 1101001011001101001100101100110100101101001100101101001011001101001011
+323 20 0100110010110011010011001011010010110011010011001011001101001011010011
+324 20 0010110011010011001011010010110011010010110100110010110100101100110100
+325 20 1100101100110100101101001100101101001011001101001011010011001011001101
+326 20 0011001011010010110011010010110100110010110100101100110100110010110011
+327 20 0100101101001100101100110100110010110100101100110100110010110011010010
+328 20 1101001100101101001011001101001011010011001011001101001100101101001011
+329 20 0011010011001011001101001011010011001011001101001100101101001011001101
+330 20 0010110100110010110100101100110100110010110011010010110100110010110011
+331 20 0100110010110100101100110100110010110011010010110100110010110100101100
+332 20 1101001011010011001011001101001100101101001011001101001011010011001011
+333 20 0100101100110100110010110011010010110100110010110100101100110100101101
+334 20 0011001011001101001100101101001011001101001100101100110100101101001100
+335 20 1011001101001100101101001011001101001011010011001011010010110011010011
+336 20 0010110011010010110100110010110100101100110100101101001100101100110100
+337 20 1100101101001011001101001011010011001011010010110011010011001011001101
+338 20 0010110100110010110011010011001011010010110011010011001011001101001011
+339 20 0100110010110100101100110100101101001100101100110100110010110100101100
+340 20 1101001011010011001011010010110011010011001011001101001011010011001011
+341 20 0100101100110100101101001100101100110100110010110100101100110100110010
+342 20 1100110100101101001100101100110100110010110100101100110100101101001100
+343 20 1011010010110011010011001011001101001011010011001011001101001100101101
+344 20 0010110011010011001011001101001011010011001011010010110011010010110100
+345 20 1100101100110100110010110100101100110100110010110011010010110100110010
+346 20 1100110100110010110100101100110100101101001100101101001011001101001100
+347 20 1011001101001011010011001011010010110011010010110100110010110011010011
+348 20 0010110100101100110100101101001100101101001011001101001100101100110100
+349 20 1011010011001011001101001100101101001011001101001100101100110100101101
+350 20 0011001011010010110011010010110100110010110011010011001011010010110011
+351 20 0100110010110011010010110100110010110011010011001011010010110011010010
+352 20 1101001100101101001011001101001100101100110100101101001100101100110100
+353 20 1100101101001011001101001100101100110100101101001100101101001011001101
+354 20 0010110100110010110011010011001011010010110011010010110100110010110100
+355 20 1011001101001100101100110100101101001100101101001011001101001011010011
+356 20 0010110011010011001011010010110011010011001011001101001011010011001011
+357 20 0011010011001011010010110011010010110100110010110100101100110100110010
+358 20 1100110100101101001100101100110100110010110100101100110100110010110011
+359 20 0100101101001100101101001011001101001011010011001011001101001100101101
+360 20 0010110011010011001011001101001011010011001011001101001100101101001011
+361 20 0011010010110100110010110100101100110100110010110011010010110100110010
+362 20 1101001011001101001011010011001011001101001100101101001011001101001011
+363 20 0100110010110100101100110100110010110011010010110100110010110011010011
+364 20 0010110100101100110100110010110011010010110100110010110100101100110100
+365 20 1011010011001011001101001100101101001011001101001011010011001011010010
+366 20 1100110100110010110011010010110100110010110100101100110100101101001100
+367 20 1011001101001100101101001011001101001100101100110100101101001100101100
+368 20 1101001100101101001011001101001011010011001011010010110011010011001011
+369 20 0011010010110100110010110100101100110100101101001100101100110100110010
+370 20 1101001011001101001011010011001011010010110011010011001011001101001011
+371 20 0100110010110011010011001011010010110011010011001011001101001011010011
+372 20 0010110100101100110100101101001100101100110100110010110100101100110100
+373 20 1100101100110100101101001100101100110100110010110100101100110100101101
+374 20 0011001011010010110011010011001011001101001011010011001011001101001100
+375 20 1011010010110011010011001011001101001011010011001011010010110011010010
+376 20 1101001100101100110100110010110100101100110100101101001100101101001011
+377 20 0011010011001011001101001011010011001011010010110011010010110100110010
+378 20 1100110100110010110100101100110100110010110011010010110100110010110011
+379 20 0100110010110100101100110100101101001100101101001011001101001100101100
+380 20 1101001011010011001011001101001100101101001011001101001100101100110100
+381 20 1011010011001011010010110011010010110100110010110011010011001011010010
+382 20 1100110100110010110011010010110100110010110011010011001011010010110011
+383 20 0100101101001100101101001011001101001100101100110100101101001100101101
+384 20 0010110011010010110100110010110011010011001011010010110011010010110100
+385 20 1100101101001011001101001100101100110100101101001100101100110100110010
+386 20 1101001011001101001100101100110100101101001100101101001011001101001011
+387 20 0100110010110011010011001011010010110011010011001011001101001011010011
+388 20 0010110011010011001011010010110011010010110100110010110100101100110100
+389 20 1100101100110100101101001100101100110100110010110100101100110100110010
+390 20 1100110100101101001100101101001011001101001011010011001011001101001100
+391 20 1011010010110011010010110100110010110100101100110100110010110011010010
+392 20 1101001100101101001011001101001011010011001011001101001100101101001011
+393 20 0011010011001011001101001011010011001011001101001100101101001011001101
+394 20 0010110100110010110100101100110100110010110011010010110100110010110100
+395 20 1011001101001011010011001011001101001100101101001011001101001011010011
+396 20 0010110100101100110100110010110011010010110100110010110011010011001011
+397 20 0100101100110100110010110011010010110100110010110100101100110100101101
+398 20 0011001011001101001100101101001011001101001011010011001011010010110011
+399 20 0100110010110011010010110100110010110100101100110100101101001100101100
+400 20 1101001100101101001011001101001100101100110100101101001100101100110100
+401 20 1100101101001011001101001011010011001011010010110011010011001011001101
+402 20 0010110100110010110011010011001011010010110011010011001011001101001011
+403 20 0100110010110100101100110100101101001100101100110100110010110100101100
+404 20 1101001100101100110100101101001100101100110100110010110100101100110100
+405 20 1011010011001011010010110011010011001011001101001011010011001011010010
+406 20 1100110100101101001100101100110100110010110100101100110100101101001100
+407 20 1011010010110011010011001011001101001011010011001011001101001100101101
+408 20 0010110011010011001011001101001011010011001011010010110011010010110100
+409 20 1100101100110100110010110100101100110100101101001100101101001011001101
+410 20 0011001011001101001011010011001011010010110011010010110100110010110011
+411 20 0100110010110100101100110100110010110011010010110100110010110011010011
+412 20 0010110100101100110100101101001100101101001011001101001100101100110100
+413 20 1011010011001011010010110011010010110100110010110011010011001011010010
+414 20 1100110100101101001100101101001011001101001100101100110100101101001100
+415 20 1011001101001100101101001011001101001100101100110100101101001100101101
+416 20 0010110011010010110100110010110011010011001011010010110011010011001011
+417 20 0011010010110100110010110011010011001011010010110011010010110100110010
+418 20 1101001011001101001100101100110100101101001100101100110100110010110100
+419 20 1011001101001100101100110100101101001100101101001011001101001011010011
+420 20 0010110011010011001011010010110011010010110100110010110100101100110100
+421 20 1100101100110100101101001100101101001011001101001011010011001011001101
+422 20 0011001011010010110011010011001011001101001011010011001011001101001100
+423 20 1011010010110011010010110100110010110100101100110100110010110011010010
+424 20 1101001100101101001011001101001011010011001011001101001100101101001011
+425 20 0011010010110100110010110100101100110100110010110011010010110100110010
+426 20 1100110100110010110100101100110100110010110011010010110100110010110100
+427 20 1011001101001011010011001011001101001100101101001011001101001011010011
+428 20 0010110100101100110100110010110011010010110100110010110100101100110100
+429 20 1011010011001011001101001100101101001011001101001100101100110100101101
+430 20 0011001011001101001100101101001011001101001011010011001011010010110011
+431 20 0100110010110011010010110100110010110011010011001011010010110011010011
+432 20 0010110011010010110100110010110100101100110100101101001100101100110100
+433 20 1100101101001011001101001100101100110100101101001100101100110100110010
+434 20 1101001011001101001011010011001011010010110011010011001011001101001011
+435 20 0100110010110100101100110100101101001100101100110100110010110100101100
+436 20 1101001011010011001011010010110011010011001011001101001011010011001011
+437 20 0011010011001011010010110011010011001011001101001011010011001011010010
+438 20 1100110100101101001100101100110100110010110100101100110100110010110011
+439 20 0100101101001100101100110100110010110100101100110100101101001100101101
+440 20 0010110011010011001011001101001011010011001011001101001100101101001011
+441 20 0011010011001011001101001011010011001011010010110011010010110100110010
+442 20 1100110100110010110100101100110100101101001100101101001011001101001100
+443 20 1011001101001011010011001011010010110011010010110100110010110011010011
+444 20 0010110100101100110100110010110011010010110100110010110011010011001011
+445 20 0100101100110100101101001100101101001011001101001100101100110100101101
+446 20 0011001011001101001100101101001011001101001100101100110100101101001100
+447 20 1011010010110011010010110100110010110011010011001011010010110011010011
+448 20 0010110011010010110100110010110011010011001011010010110011010010110100
+449 20 1100101101001011001101001100101100110100101101001100101101001011001101
+450 20 0010110100110010110011010011001011010010110011010010110100110010110100
+451 20 1011001101001100101100110100101101001100101100110100110010110100101100
+452 20 1101001100101100110100101101001100101101001011001101001011010011001011
+453 20 0011010011001011010010110011010010110100110010110100101100110100110010
+454 20 1100110100101101001100101101001011001101001011010011001011001101001100
+455 20 1011010010110011010011001011001101001011010011001011001101001100101101
+456 20 0010110011010010110100110010110100101100110100110010110011010010110100
+457 20 1100101101001011001101001011010011001011001101001100101101001011001101
+458 20 0010110100110010110100101100110100110010110011010010110100110010110011
+459 20 0100110010110100101100110100110010110011010010110100110010110100101100
+460 20 1101001011010011001011001101001100101101001011001101001100101100110100
+461 20 1011010011001011001101001100101101001011001101001011010011001011010010
+462 20 1100110100110010110011010010110100110010110011010011001011010010110011
+463 20 0100110010110011010010110100110010110100101100110100101101001100101100
+464 20 1101001100101101001011001101001011010011001011010010110011010011001011
+465 20 0011010010110100110010110100101100110100101101001100101100110100110010
+466 20 1101001011001101001100101100110100101101001100101100110100110010110100
+467 20 1011001101001011010011001011010010110011010011001011001101001011010011
+468 20 0010110011010011001011010010110011010011001011001101001011010011001011
+469 20 0100101100110100101101001100101100110100110010110100101100110100110010
+470 20 1100110100101101001100101100110100110010110100101100110100101101001100
+471 20 1011010010110011010011001011001101001011010011001011010010110011010010
+472 20 1101001100101100110100110010110100101100110100101101001100101101001011
+473 20 0011010011001011001101001011010011001011001101001100101101001011001101
+474 20 0011001011001101001011010011001011010010110011010010110100110010110011
+475 20 0100110010110100101100110100110010110011010010110100110010110011010011
+476 20 0010110100101100110100101101001100101101001011001101001100101100110100
+477 20 1011010011001011001101001100101101001011001101001100101100110100101101
+478 20 0011001011010010110011010010110100110010110011010011001011010010110011
+479 20 0100101101001100101101001011001101001100101100110100101101001100101101
+480 20 0010110011010010110100110010110011010011001011010010110011010011001011
+481 20 0011010010110100110010110011010011001011010010110011010010110100110010
+482 20 1101001011001101001100101100110100101101001100101101001011001101001011
+483 20 0100110010110011010011001011010010110011010010110100110010110100101100
+484 20 1101001100101100110100101101001100101100110100110010110100101100110100
+485 20 1100101100110100101101001100101101001011001101001011010011001011001101
+486 20 0011001011010010110011010010110100110010110100101100110100110010110011
+487 20 0100101101001100101101001011001101001011010011001011001101001100101101
+488 20 0010110011010011001011001101001011010011001011001101001100101101001011
+489 20 0011010010110100110010110100101100110100110010110011010010110100110010
+490 20 1100110100110010110100101100110100110010110011010010110100110010110100
+491 20 1011001101001011010011001011001101001100101101001011001101001100101100
+492 20 1101001011010011001011001101001100101101001011001101001011010011001011
+493 20 0100101100110100110010110011010010110100110010110100101100110100101101
+494 20 0011001011001101001100101101001011001101001011010011001011010010110011
+495 20 0100110010110011010010110100110010110011010011001011010010110011010011
+496 20 0010110011010010110100110010110100101100110100101101001100101100110100
+497 20 1100101101001011001101001100101100110100101101001100101100110100110010
+498 20 1101001011001101001011010011001011010010110011010011001011001101001011
+499 20 0100110010110011010011001011010010110011010011001011001101001011010011
+500 20 0010110100101100110100101101001100101100110100110010110100101100110100
+501 20 1011010011001011010010110011010011001011001101001011010011001011010010
+502 20 1100110100101101001100101100110100110010110100101100110100110010110011
+503 20 0100101101001100101100110100110010110100101100110100101101001100101101
+504 20 0010110011010011001011001101001011010011001011001101001100101101001011
+505 20 0011010011001011001101001011010011001011010010110011010010110100110010
+506 20 1100110100110010110100101100110100110010110011010010110100110010110011
+507 20 0100110010110100101100110100101101001100101101001011001101001100101100
+508 20 1101001011010011001011010010110011010010110100110010110011010011001011
+509 20 0100101100110100101101001100101101001011001101001100101100110100101101
+510 20 0011001011001101001100101101001011001101001100101100110100101101001100
+511 20 1011010010110011010010110100110010110011010011001011010010110011010010
+512 20 1101001100101101001011001101001100101100110100101101001100101101001011
+513 20 0011010010110100110010110011010011001011010010110011010011001011001101
+514 20 0010110100110010110011010011001011010010110011010010110100110010110100
+515 20 1011001101001100101100110100101101001100101101001011001101001011010011
+516 20 0010110011010011001011010010110011010010110100110010110100101100110100
+517 20 1100101100110100101101001100101100110100110010110100101100110100110010
+518 20 1100110100101101001100101101001011001101001011010011001011001101001100
+519 20 1011010010110011010011001011001101001011010011001011001101001100101101
+520 20 0010110011010010110100110010110100101100110100110010110011010010110100
+521 20 1100101100110100110010110100101100110100110010110011010010110100110010
+522 20 1101001011001101001011010011001011001101001100101101001011001101001011
+523 20 0100110010110100101100110100110010110011010010110100110010110100101100
+524 20 1101001011010011001011001101001100101101001011001101001100101100110100
+525 20 1011010011001011001101001100101101001011001101001011010011001011010010
+526 20 1100110100110010110011010010110100110010110100101100110100101101001100
+527 20 1011001101001100101101001011001101001011010011001011010010110011010011
+528 20 0010110011010010110100110010110011010011001011010010110011010011001011
+529 20 0011010010110100110010110100101100110100101101001100101100110100110010
+530 20 1101001011001101001011010011001011010010110011010011001011001101001011
+531 20 0100110010110100101100110100101101001100101100110100110010110100101100
+532 20 1101001100101100110100101101001100101100110100110010110100101100110100
+533 20 1011010011001011010010110011010011001011001101001011010011001011001101
+534 20 0011001011010010110011010011001011001101001011010011001011010010110011
+535 20 0100101101001100101100110100110010110100101100110100110010110011010010
+536 20 1101001100101100110100110010110100101100110100101101001100101101001011
+537 20 0011010011001011001101001011010011001011010010110011010010110100110010
+538 20 1100110100110010110100101100110100101101001100101101001011001101001100
+539 20 1011001101001011010011001011001101001100101101001011001101001100101100
+540 20 1101001011010011001011010010110011010010110100110010110011010011001011
+541 20 0100101100110100101101001100101101001011001101001100101100110100101101
+542 20 00110010110