aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-11 14:02:31 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-11 14:02:31 -0500
commitf07e748444200bad23c6a44a30af82bc7b7c8e48 (patch)
tree76541d07cc671763e1bdcddf047f110b53a73341
parent0479522e13e439f95bfc533a1297cff4f8175622 (diff)
Always make structural functions enclose atoms
-rwxr-xr-xdocs/bqn.js4
-rw-r--r--docs/spec/primitive.html8
-rw-r--r--spec/primitive.md8
-rw-r--r--spec/reference.bqn4
-rw-r--r--src/r.bqn8
-rw-r--r--test/cases/prim.bqn9
6 files changed, 23 insertions, 18 deletions
diff --git a/docs/bqn.js b/docs/bqn.js
index e06e2424..4705757c 100755
--- a/docs/bqn.js
+++ b/docs/bqn.js
@@ -241,9 +241,9 @@ let provide = [
];
let runtime = run(
- [0,2,14,15,1,22,0,0,11,14,15,2,22,0,1,11,14,15,3,0,23,15,4,8,22,0,2,11,14,15,5,22,0,3,11,14,15,6,22,0,4,11,14,15,7,22,0,5,11,14,15,8,22,0,6,11,14,15,9,22,0,7,11,14,15,10,22,0,8,11,14,15,11,22,0,9,11,14,0,0,0,14,0,24,19,22,0,10,11,14,0,24,0,14,21,0,7,0,13,8,3,2,21,0,0,0,0,0,14,0,25,19,8,22,0,11,11,14,0,24,0,14,21,0,7,0,13,8,0,10,0,15,21,0,7,0,24,8,19,3,2,21,0,0,0,0,0,14,0,25,19,8,22,0,12,11,14,15,12,0,17,3,2,21,0,0,21,0,10,8,22,0,13,11,14,15,13,0,23,15,14,8,22,0,14,11,14,15,15,22,0,15,11,14,21,0,10,0,9,0,25,19,21,0,9,21,0,15,8,22,0,16,11,14,21,0,4,0,15,7,22,0,17,11,14,21,0,17,0,9,0,25,19,0,23,21,0,15,8,22,0,18,11,14,0,15,0,9,0,25,19,22,0,19,11,14,15,16,0,18,21,0,19,19,0,23,0,13,8,22,0,20,11,14,15,17,0,18,21,0,18,19,0,23,0,9,21,0,5,21,0,20,21,0,5,0,9,8,8,8,22,0,21,11,14,0,9,21,0,1,3,2,21,0,0,0,15,21,0,7,0,24,8,8,22,0,22,11,14,0,25,0,16,0,18,0,24,19,3,2,21,0,0,0,14,21,0,18,0,24,19,8,22,0,23,11,14,15,18,22,0,24,11,14,21,0,24,22,0,25,11,14,0,16,21,0,8,15,19,8,22,0,26,11,14,15,20,22,0,27,11,14,21,0,1,0,22,15,21,15,22,3,2,21,0,0,21,0,1,21,0,5,0,14,8,0,14,0,25,19,8,8,22,0,28,11,14,21,0,28,22,0,29,11,14,15,23,22,0,30,11,14,15,24,22,0,31,11,14,0,15,0,9,21,0,17,19,22,0,32,11,14,0,25,0,17,0,18,0,24,19,21,0,8,0,15,0,10,0,26,19,0,9,0,25,19,15,25,3,2,21,0,0,21,0,1,21,0,5,21,0,10,8,8,8,3,2,21,0,0,21,0,1,21,0,5,0,16,8,21,0,25,0,10,7,0,25,19,21,0,18,0,24,19,8,22,0,33,11,14,21,0,32,21,0,33,21,0,4,21,0,33,7,0,9,9,3,2,21,0,0,21,0,2,21,0,5,21,0,10,8,8,15,26,3,3,21,0,0,21,0,10,21,0,6,0,8,8,8,22,0,34,11,14,15,27,22,0,35,11,14,15,28,22,0,36,11,14,0,14,21,0,18,0,24,19,21,0,9,21,0,1,0,22,15,29,8,8,22,0,37,11,14,0,14,21,0,18,0,24,19,21,0,9,21,0,1,0,22,15,30,8,8,22,0,38,11,14,15,31,22,0,39,11,14,15,32,22,0,40,11,14,15,33,22,0,41,11,14,15,34,22,0,42,11,14,15,35,22,0,43,11,14,15,36,22,0,44,11,14,15,37,22,0,45,11,14,21,0,13,0,3,0,18,21,0,7,0,24,8,3,2,21,0,0,21,0,23,21,0,18,0,24,19,8,9,22,0,46,11,14,15,38,22,0,47,11,14,15,39,22,0,48,11,14,15,40,22,0,49,11,14,15,41,22,0,50,11,14,0,24,0,14,21,0,7,21,0,3,21,0,50,7,8,3,2,21,0,0,0,0,0,14,0,28,19,8,22,0,51,11,14,15,42,22,0,52,11,14,21,0,1,21,0,1,21,0,1,21,0,25,15,43,7,9,15,44,15,45,15,46,3,6,21,0,0,21,0,2,8,22,0,53,11,14,15,47,22,0,54,11,14,21,0,10,21,0,6,0,14,8,0,24,3,2,21,0,1,21,0,5,21,0,10,8,0,14,3,2,0,14,21,0,6,0,14,8,0,24,3,2,0,16,21,0,6,21,0,49,0,14,7,8,21,0,25,0,10,7,0,25,19,0,24,3,2,15,48,3,5,21,0,25,15,49,7,16,22,0,55,11,14,0,24,15,50,3,2,21,0,0,21,0,10,8,22,0,56,11,14,21,0,55,0,23,21,0,56,8,22,0,57,11,14,21,0,55,0,9,0,25,19,0,23,3,0,0,16,3,2,21,0,0,21,0,10,8,8,22,0,58,11,14,21,0,57,21,0,5,0,7,8,21,0,2,21,0,1,19,22,0,59,11,14,0,17,21,0,5,0,3,0,22,21,0,1,8,21,0,25,21,0,59,0,22,21,0,1,8,7,3,2,21,0,0,21,0,23,21,0,18,0,24,19,8,8,22,0,60,11,14,15,51,22,0,61,11,14,21,0,10,21,0,9,21,0,27,21,0,61,15,52,8,8,22,0,62,11,14,15,53,22,0,63,11,14,15,54,22,0,64,11,14,21,0,10,0,7,0,58,19,21,0,2,15,55,21,0,61,21,0,62,21,0,64,21,0,63,3,2,21,0,0,0,20,0,14,0,14,0,25,19,7,21,0,25,0,10,7,0,25,19,8,21,0,64,3,3,21,0,0,0,14,21,0,20,0,26,19,8,8,19,22,0,65,11,14,15,56,22,0,66,11,14,21,0,66,0,63,21,0,22,21,0,8,0,14,8,0,9,0,25,19,15,57,3,3,7,22,0,67,11,14,21,0,66,0,64,0,14,21,0,7,0,24,8,0,9,0,25,19,15,58,3,3,7,22,0,68,11,14,15,59,22,0,69,11,14,15,60,22,0,70,11,14,15,61,22,0,71,11,14,15,62,22,0,72,11,14,15,63,22,0,73,11,14,15,64,22,0,74,11,14,15,65,22,0,75,11,14,21,0,31,0,11,7,22,0,76,11,14,21,0,31,0,12,7,22,0,77,11,14,21,0,4,21,0,76,21,0,8,21,0,77,8,7,0,23,0,26,21,0,76,16,21,0,8,21,0,77,8,8,22,0,78,11,14,21,0,31,15,66,0,23,21,0,22,8,7,22,0,79,11,14,21,0,31,15,67,0,23,21,0,20,8,7,22,0,80,11,14,21,0,31,15,68,0,23,0,9,21,0,5,21,0,80,21,0,5,0,9,8,8,8,7,22,0,81,11,14,21,0,31,0,10,7,0,23,21,0,43,0,24,7,8,22,0,82,11,14,21,0,31,0,10,0,9,0,8,19,7,0,23,21,0,43,0,25,7,8,22,0,83,11,14,21,0,31,0,10,0,23,21,0,19,0,9,21,0,18,19,21,0,7,0,24,8,8,7,22,0,84,11,14,21,0,31,21,0,17,0,9,0,25,19,7,0,23,21,0,15,8,22,0,85,11,14,21,0,31,0,15,0,9,0,25,19,7,0,23,21,0,62,8,22,0,86,11,14,21,0,31,0,14,0,9,0,25,19,7,0,23,21,0,23,8,22,0,87,11,14,21,0,31,0,14,7,0,23,0,14,8,22,0,88,11,14,21,0,31,21,0,17,7,0,23,21,0,3,0,24,7,0,7,0,76,19,8,22,0,89,11,14,21,0,31,0,15,7,0,23,21,0,3,0,24,7,0,7,0,77,19,8,22,0,90,11,14,21,0,31,0,8,7,22,0,91,11,14,21,0,31,0,9,7,22,0,92,11,14,21,0,92,21,0,91,0,25,19,22,0,93,11,14,21,0,91,0,24,3,2,21,0,92,0,24,3,2,21,0,84,0,25,3,2,21,0,76,0,25,3,2,21,0,77,0,25,3,2,21,0,93,0,25,3,2,21,0,80,0,33,3,2,21,0,81,0,32,3,2,21,0,83,0,24,3,2,21,0,82,0,25,3,2,21,0,87,0,24,3,2,21,0,88,0,25,3,2,21,0,86,0,24,3,2,21,0,89,0,25,3,2,21,0,3,0,24,7,0,7,0,78,19,3,15,21,0,25,15,69,7,16,22,0,94,11,14,21,0,2,21,0,88,21,0,88,21,0,87,21,0,57,21,0,58,3,4,19,21,0,25,21,0,91,7,9,21,0,9,15,70,8,22,0,95,11,14,15,71,22,0,96,11,14,0,17,0,23,21,0,13,8,22,0,97,11,14,15,72,22,0,98,11,14,15,73,22,0,99,11,14,15,74,22,0,100,11,14,15,75,22,0,101,11,14,15,76,22,0,102,11,14,15,77,22,0,103,11,14,21,0,103,22,0,104,11,14,21,0,59,0,22,21,0,97,21,0,6,21,0,27,8,15,78,3,2,21,0,0,21,0,88,21,0,85,0,25,19,21,0,6,21,0,83,8,8,8,22,0,105,11,14,21,0,29,21,0,7,21,0,36,8,22,0,106,11,14,21,0,1,0,22,21,0,87,21,0,88,0,24,19,21,0,92,0,25,19,21,0,75,15,79,15,80,3,2,21,0,0,21,0,2,21,0,5,21,0,88,8,21,0,85,0,24,19,8,8,8,22,0,107,11,14,21,0,67,0,23,21,0,41,8,22,0,108,11,14,21,0,68,0,23,21,0,42,8,22,0,109,11,14,21,0,73,0,23,21,0,98,8,22,0,110,11,14,0,24,21,0,75,21,0,40,8,0,23,21,0,39,8,22,0,111,11,14,21,0,107,0,23,21,0,36,8,22,0,112,11,14,21,0,59,0,23,21,0,1,8,0,22,21,0,70,0,23,21,0,70,21,0,7,21,0,72,8,8,8,22,0,113,11,14,21,0,59,0,23,21,0,1,8,0,22,21,0,71,0,23,21,0,71,21,0,7,21,0,72,8,8,8,22,0,114,11,14,15,81,22,0,115,11,14,15,82,22,0,116,11,14,15,83,22,0,117,11,14,15,84,22,0,118,11,14,21,0,118,15,85,3,2,21,0,0,21,0,2,21,0,5,21,0,97,21,0,5,0,20,21,0,10,7,8,8,21,0,25,21,0,83,7,9,8,22,0,119,11,14,21,0,119,21,0,7,21,0,97,21,0,1,3,2,21,0,0,21,0,10,8,8,22,0,120,11,14,15,86,22,0,121,11,14,15,87,22,0,122,11,14,15,88,22,0,123,11,14,15,89,22,0,124,11,14,21,0,101,22,0,125,11,14,21,0,102,22,0,126,11,14,21,0,124,21,0,34,7,0,23,0,24,21,0,35,21,0,34,8,8,22,0,127,11,14,21,0,124,21,0,4,21,0,34,7,7,0,23,0,25,21,0,35,21,0,4,21,0,34,7,8,8,22,0,128,11,14,15,90,22,0,129,11,14,0,6,21,0,7,21,0,49,0,25,7,8,22,0,130,11,14,15,91,22,0,131,11,14,21,0,131,21,0,1,21,0,5,0,21,21,0,91,7,8,21,0,4,21,0,92,7,0,25,19,21,0,4,21,0,29,7,21,0,4,21,0,112,21,0,5,21,0,127,21,0,5,21,0,130,8,8,7,19,7,22,0,132,11,14,15,92,22,0,133,11,14,21,0,59,0,23,21,0,1,8,0,22,21,0,14,21,0,5,21,0,86,8,8,22,0,134,11,14,21,0,105,0,23,21,0,65,8,22,0,135,11,14,21,0,117,0,23,21,0,116,8,22,0,136,11,14,21,0,129,0,25,7,0,23,21,0,132,8,22,0,137,11,14,21,0,4,21,0,129,0,24,7,7,0,23,21,0,131,21,0,1,7,8,22,0,138,11,14,15,93,22,0,139,11,14,21,0,1,0,22,15,94,8,22,0,140,11,14,15,95,22,0,141,11,14,15,96,22,0,142,11,14,21,0,141,0,23,21,0,37,8,22,0,143,11,14,21,0,127,21,0,5,21,0,127,8,21,0,29,21,0,92,21,0,1,19,21,0,4,21,0,137,7,19,0,3,0,24,19,22,0,144,11,14,15,97,0,3,0,24,19,22,0,145,11,14,21,0,1,0,22,0,25,21,0,75,21,0,45,8,21,0,7,21,0,16,8,0,23,21,0,44,8,8,22,0,146,11,14,21,0,120,0,23,21,0,46,8,22,0,147,11,14,15,98,22,0,148,11,14,15,99,22,0,149,11,14,15,100,22,0,150,11,14,21,0,85,21,0,137,21,0,5,21,0,147,8,21,0,5,21,0,80,21,0,111,21,0,108,3,4,19,22,0,151,11,14,21,0,135,22,0,152,11,14,21,0,150,22,0,153,11,14,21,0,96,0,23,21,0,13,8,22,0,154,11,14,21,0,52,22,0,155,11,14,21,0,145,0,23,21,0,144,8,22,0,156,11,14,21,0,133,0,23,21,0,112,21,0,7,21,0,138,8,8,22,0,157,11,14,0,7,21,0,7,0,119,8,22,0,158,11,14,0,7,21,0,7,0,120,8,22,0,159,11,14,21,0,3,0,24,7,0,7,0,121,19,22,0,160,11,14,15,101,22,0,161,11,14,15,102,22,0,162,11,14,15,103,22,0,163,11,14,15,104,22,0,164,11,14,21,0,91,21,0,4,21,0,92,7,0,23,21,0,91,8,21,0,92,21,0,92,21,0,84,21,0,4,21,0,76,7,0,23,21,0,1,8,21,0,76,21,0,76,21,0,77,21,0,31,0,4,7,21,0,78,21,0,4,21,0,77,7,0,23,21,0,4,21,0,84,7,8,21,0,82,21,0,4,21,0,76,7,0,23,21,0,82,21,0,161,21,0,1,8,8,21,0,83,21,0,2,21,0,92,0,25,19,21,0,76,21,0,4,21,0,92,7,19,0,23,21,0,83,21,0,161,21,0,1,8,8,21,0,93,21,0,93,21,0,85,0,24,21,0,5,21,0,158,8,0,23,15,105,8,21,0,1,21,0,1,21,0,2,21,0,57,21,0,5,21,0,159,8,21,0,2,21,0,1,19,0,23,21,0,1,8,21,0,135,15,106,0,23,0,24,21,0,5,21,0,158,8,8,21,0,134,15,107,0,23,15,108,8,21,0,108,0,24,21,0,5,21,0,158,8,0,23,21,0,108,21,0,161,21,0,147,21,0,7,0,30,8,8,8,21,0,109,0,24,21,0,5,21,0,158,8,0,23,21,0,109,21,0,161,21,0,147,8,8,21,0,110,0,24,21,0,5,21,0,158,8,0,23,21,0,110,21,0,161,21,0,58,8,8,21,0,111,21,0,111,21,0,7,21,0,92,8,0,23,21,0,111,8,21,0,143,21,0,142,0,23,21,0,38,8,21,0,112,0,24,21,0,5,21,0,158,8,0,23,15,109,8,21,0,136,21,0,163,0,23,21,0,162,8,3,42,21,0,164,21,0,160,8,22,0,165,11,14,15,110,22,0,166,11,14,15,111,22,0,167,11,14,15,112,21,0,6,15,113,8,22,0,168,11,14,15,114,21,0,4,21,0,91,21,0,4,21,0,92,7,0,23,0,26,21,0,8,21,0,76,8,8,21,0,92,21,0,91,0,23,0,24,21,0,5,21,0,158,8,8,21,0,84,21,0,4,21,0,76,7,0,23,21,0,78,8,21,0,76,21,0,84,0,23,0,24,21,0,5,21,0,158,8,8,21,0,77,21,0,78,0,23,0,24,21,0,5,21,0,158,8,8,21,0,78,0,4,21,0,76,9,0,23,0,24,21,0,5,21,0,158,8,8,21,0,82,21,0,4,21,0,76,7,0,23,21,0,78,8,21,0,83,21,0,2,21,0,92,0,25,19,21,0,76,21,0,4,21,0,92,7,19,0,23,21,0,93,21,0,5,21,0,78,8,21,0,93,9,8,21,0,93,21,0,3,0,25,7,21,0,92,21,0,91,19,0,23,0,24,21,0,5,21,0,158,8,8,3,18,21,0,164,21,0,160,8,21,0,49,15,115,21,0,166,15,116,21,0,74,15,117,0,21,15,118,3,10,21,0,164,21,0,3,21,0,160,7,8,7,22,0,169,11,14,0,25,0,1,21,0,146,0,24,0,30,3,2,19,21,0,57,0,34,21,0,3,3,2,19,3,2,21,0,148,0,0,21,0,90,0,28,19,8,22,0,170,11,14,15,119,21,0,167,15,120,21,0,5,21,0,168,21,0,6,15,121,21,0,155,15,122,21,0,153,21,0,3,0,24,21,0,5,21,0,158,8,7,15,123,15,124,3,2,21,0,148,21,0,90,21,0,7,0,24,8,8,3,2,21,0,148,21,0,1,21,0,5,21,0,11,8,8,0,23,15,125,21,0,7,15,126,15,127,21,0,1,3,2,21,0,148,21,0,2,8,21,0,2,21,0,5,21,0,170,8,19,21,0,8,15,128,3,16,21,0,164,21,0,3,21,0,160,7,8,7,22,0,171,11,14,15,129,22,0,172,11,14,0,1,21,0,109,21,0,7,0,25,8,21,0,1,21,0,147,21,0,5,21,0,165,8,9,21,0,3,21,0,3,0,24,7,0,7,0,122,19,7,21,0,1,21,0,25,21,0,168,7,9,21,0,172,21,0,169,21,0,171,3,6,21,0,148,21,0,2,8,21,0,147,19,9,22,0,173,11,14,15,130,21,0,173,21,0,3,0,24,7,0,7,0,123,19,3,3,21,0,112,0,28,0,25,0,26,3,3,17,21,0,148,0,0,8,22,0,174,11,14,15,131,22,0,175,11,14,21,0,1,21,0,2,21,0,4,21,0,5,21,0,6,21,0,7,21,0,8,0,23,21,0,148,3,9,21,0,88,21,0,87,21,0,58,3,3,21,0,85,21,0,134,21,0,110,21,0,112,21,0,113,21,0,114,21,0,136,3,5,21,0,154,21,0,108,21,0,109,21,0,111,21,0,143,21,0,146,21,0,147,3,7,3,6,21,0,49,21,0,154,7,16,15,132,16,22,0,176,11,14,21,0,91,21,0,92,21,0,84,21,0,76,21,0,77,21,0,78,21,0,80,21,0,81,21,0,79,21,0,93,21,0,82,21,0,83,21,0,85,21,0,86,21,0,87,21,0,88,21,0,90,21,0,89,21,0,57,21,0,58,21,0,2,21,0,1,21,0,154,21,0,135,21,0,134,21,0,108,21,0,109,21,0,110,21,0,114,21,0,113,21,0,111,21,0,143,21,0,112,21,0,127,21,0,128,21,0,146,21,0,147,21,0,137,21,0,156,21,0,138,21,0,157,21,0,136,0,7,21,0,3,21,0,4,21,0,74,21,0,49,21,0,166,21,0,175,21,0,25,21,0,104,0,21,21,0,5,21,0,6,21,0,7,21,0,8,21,0,155,0,23,21,0,148,21,0,126,21,0,125,21,0,153,3,62,25,21,0,1,15,133,21,0,5,0,18,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,25,21,0,2,25,21,0,1,25,21,0,1,14,21,0,4,25,21,0,1,21,1,2,21,0,2,17,21,0,4,21,0,1,17,25,21,0,1,21,0,5,21,0,2,17,21,0,4,16,25,21,0,1,21,0,5,16,21,0,4,21,0,2,21,0,5,16,17,25,21,0,1,21,0,5,21,0,1,21,1,2,21,0,2,17,21,0,4,16,17,25,21,0,1,21,0,5,16,21,0,4,21,0,1,21,1,2,21,0,2,17,17,25,21,0,1,15,134,21,1,1,21,0,4,3,2,0,18,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,0,3,21,0,1,17,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,3,1,0,17,3,0,17,0,3,21,0,1,17,25,21,0,2,21,0,1,3,2,25,21,0,2,21,0,1,3,2,25,21,0,1,0,14,16,0,14,0,25,17,0,7,0,36,17,14,21,0,1,22,0,5,11,21,1,23,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,2,0,23,15,135,15,136,3,2,21,1,0,21,0,6,21,1,18,0,24,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,0,19,16,0,20,0,9,21,1,7,0,25,0,9,21,0,6,17,8,7,16,0,20,15,137,7,16,14,21,0,8,25,21,0,2,0,9,21,0,1,21,1,23,16,17,0,19,16,0,20,21,1,3,21,0,1,7,0,18,0,8,21,1,7,21,0,2,8,19,7,16,25,21,0,2,21,1,23,16,22,0,3,11,14,21,0,1,21,1,23,16,0,8,21,0,3,17,0,19,16,0,20,21,0,2,21,1,8,0,18,8,21,1,4,21,0,1,7,0,18,21,0,3,21,1,8,0,9,8,19,3,2,21,1,0,0,15,21,1,7,21,0,3,8,8,7,16,25,21,0,1,21,1,26,0,25,17,22,0,3,11,21,1,25,0,10,7,0,25,17,22,0,4,11,14,21,0,4,0,19,16,0,17,21,0,3,17,0,20,0,8,21,1,7,0,10,21,1,7,21,0,4,8,8,21,1,4,0,18,7,21,0,1,0,17,16,19,7,21,0,2,17,25,21,0,2,0,20,21,0,1,21,1,8,0,18,8,7,16,25,15,138,22,0,2,11,14,15,139,22,0,3,11,14,21,0,3,21,0,1,7,21,1,4,21,0,3,21,1,4,21,0,1,7,7,7,3,2,21,1,0,0,14,21,1,6,21,1,19,8,8,21,0,2,21,0,1,7,3,2,21,1,0,0,14,21,1,6,0,14,8,8,25,15,140,21,0,1,7,22,0,2,11,14,21,0,1,21,0,2,0,22,15,141,15,142,3,2,21,1,0,21,1,10,21,1,6,21,1,19,8,8,0,23,0,20,21,0,2,7,8,8,21,0,2,0,22,21,1,30,21,0,2,7,8,3,3,21,1,0,21,1,10,21,1,6,0,8,8,8,25,21,0,1,21,1,33,21,0,2,17,25,21,0,1,0,16,21,1,6,21,1,121,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,25,21,1,122,21,0,1,0,17,16,21,1,8,0,18,8,21,1,8,21,1,34,21,1,7,21,0,2,0,17,16,21,1,8,0,18,8,8,8,7,7,16,22,0,4,11,14,0,24,21,1,4,21,0,4,7,16,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,39,17,14,21,0,1,21,1,23,16,22,0,6,11,14,21,0,1,21,1,26,0,25,17,21,1,25,0,10,7,0,25,17,22,0,7,11,14,21,0,1,0,17,16,22,0,8,11,14,0,24,22,0,9,11,22,0,10,11,14,21,0,8,0,24,0,20,21,1,11,7,21,1,25,0,10,7,0,25,19,3,2,21,1,0,21,0,6,21,1,18,0,27,17,0,10,0,25,0,14,21,0,7,17,17,8,16,21,1,1,21,1,9,21,0,1,21,1,8,15,143,8,8,16,0,9,0,25,17,22,0,11,11,14,21,0,1,0,20,21,0,10,21,1,8,0,9,8,0,9,21,1,7,21,0,9,8,3,2,0,18,21,0,5,17,7,0,6,21,1,7,0,5,8,9,15,144,21,0,4,7,3,2,21,1,0,21,0,11,8,16,0,3,0,24,17,25,21,0,1,0,14,16,0,14,0,25,17,0,7,0,40,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,0,3,21,1,18,0,24,17,21,1,9,15,145,8,16,0,3,0,24,17,25,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,1,26,0,25,17,22,0,4,11,21,1,25,0,10,7,0,25,17,22,0,5,11,14,21,0,3,0,19,16,0,20,21,1,3,21,0,1,0,17,16,7,0,18,0,10,21,1,7,21,0,5,8,21,1,8,0,8,8,19,7,21,0,5,0,19,16,0,17,21,0,4,17,17,25,21,0,1,0,14,16,21,1,4,0,9,7,0,25,17,22,0,3,11,14,21,0,1,0,16,16,22,0,4,11,14,21,0,4,0,18,21,0,3,17,22,0,5,11,14,21,0,3,0,19,16,0,20,21,0,4,21,1,8,0,18,8,7,16,22,0,6,11,14,21,0,6,21,1,25,0,10,7,0,25,17,0,19,16,0,17,21,0,6,17,0,20,21,1,3,21,0,1,0,17,16,7,0,18,0,10,21,1,7,21,0,5,8,21,1,8,0,8,8,19,7,21,0,5,0,19,16,17,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,42,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,1,29,21,0,3,0,19,16,0,20,0,9,21,1,7,0,25,0,9,21,0,3,17,8,7,16,17,25,21,0,2,21,1,11,16,0,7,0,43,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,3,0,11,21,0,2,17,21,1,20,16,0,10,21,0,3,17,0,9,22,0,2,13,14,21,0,1,21,1,29,21,0,3,0,19,16,0,20,21,1,1,0,15,21,0,2,0,9,21,0,3,17,19,0,10,21,0,3,19,0,9,21,1,1,19,0,8,21,0,2,19,7,16,17,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,44,17,14,21,0,1,21,1,23,16,0,8,0,25,17,0,19,16,0,20,21,0,1,21,1,8,21,1,29,21,1,7,0,19,8,8,7,16,0,3,21,1,7,0,18,21,1,7,0,24,8,8,16,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,45,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,3,0,8,0,25,17,0,19,16,0,20,21,0,1,21,1,8,21,1,29,21,1,7,15,146,8,8,7,16,0,3,21,1,7,0,18,21,1,7,21,0,3,8,8,16,25,21,1,29,21,1,7,21,0,1,21,1,35,21,1,34,21,1,4,21,1,34,7,3,2,0,18,21,0,1,17,8,8,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,46,17,14,21,0,1,21,1,23,16,21,1,18,0,24,17,0,7,0,47,17,14,21,0,1,21,1,28,0,24,21,1,18,16,17,25,21,0,2,21,1,10,16,0,7,0,48,17,14,21,0,2,0,20,21,1,11,7,16,0,17,16,21,1,25,0,10,7,0,25,17,0,7,0,49,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,2,0,20,21,1,19,21,1,7,21,0,3,8,0,10,0,15,21,1,7,21,0,3,0,9,16,8,19,7,16,0,17,16,21,1,25,0,10,7,0,25,17,0,7,0,50,17,14,21,0,1,21,1,29,21,1,7,0,20,21,1,1,21,1,19,0,24,19,0,10,21,0,3,19,0,8,21,1,1,19,7,8,21,0,2,17,25,21,0,1,0,1,16,22,0,3,11,14,21,0,3,0,18,0,24,17,0,24,21,1,8,0,15,8,21,0,3,21,1,5,21,1,23,8,21,1,4,0,9,7,0,25,19,0,19,9,21,1,25,0,10,21,1,7,0,8,21,1,7,0,25,8,21,1,4,0,18,7,21,0,3,19,21,0,0,9,8,7,0,25,19,3,2,21,1,0,0,15,21,1,7,0,26,8,8,16,25,21,0,1,15,147,21,1,2,21,1,47,9,21,1,9,15,148,8,3,2,21,1,0,21,1,2,21,1,5,0,0,8,0,15,0,28,19,8,21,0,2,17,25,21,0,1,21,1,16,21,1,6,21,0,4,21,1,48,21,1,30,21,0,4,7,0,23,0,20,21,0,4,7,8,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,0,5,21,1,6,21,0,4,8,21,0,2,17,22,0,6,11,14,21,0,1,21,1,54,21,0,5,7,16,22,0,7,22,0,8,4,2,11,14,21,1,1,21,1,5,21,1,51,8,0,9,0,25,19,21,1,9,15,149,8,22,0,9,11,14,21,1,1,0,22,15,150,8,22,0,10,11,14,21,0,8,21,0,9,21,0,6,17,21,1,3,21,0,1,7,21,1,8,21,0,10,8,21,1,3,21,0,5,7,21,1,174,9,15,151,9,3,2,21,1,0,21,1,51,8,16,25,21,0,1,21,0,2,9,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,21,0,5,21,0,4,21,0,3,19,25,21,0,1,22,0,3,22,0,4,4,2,11,14,21,0,4,21,0,3,7,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,21,0,5,21,0,4,21,0,3,8,25,21,1,3,21,1,50,7,22,0,5,11,14,21,1,39,21,1,25,21,1,1,21,1,10,9,21,1,9,0,17,21,1,8,0,18,8,8,7,21,0,1,19,0,24,0,16,21,1,1,21,1,25,0,10,7,0,25,19,0,19,9,21,1,8,0,17,8,9,3,2,21,1,0,21,1,10,8,9,22,0,6,11,14,15,152,22,0,7,11,14,0,1,0,24,0,18,21,1,7,0,26,8,0,14,21,1,3,21,0,7,7,19,3,2,21,1,0,0,18,21,1,7,0,24,8,0,14,0,31,19,8,9,22,0,8,11,14,15,153,22,0,9,11,14,21,0,9,0,25,7,22,0,10,11,14,21,0,9,0,24,7,22,0,11,11,14,15,154,22,0,12,11,14,15,155,22,0,13,11,14,15,156,22,0,14,11,14,0,0,21,1,17,0,28,19,21,1,9,21,0,14,21,1,51,7,8,22,0,15,11,14,21,0,14,21,0,8,7,22,0,16,11,14,21,1,3,21,1,1,21,0,11,21,1,7,0,25,8,21,0,12,9,21,0,10,21,1,7,0,24,8,21,0,12,9,21,0,10,21,1,7,0,25,8,21,0,12,9,21,0,10,21,1,7,0,25,8,21,0,13,9,21,0,10,21,1,7,0,25,8,21,0,16,15,157,15,158,3,3,21,1,0,21,1,3,0,28,7,0,9,0,0,19,8,3,7,7,0,18,21,1,176,19,15,159,21,1,1,19,22,0,17,11,14,0,1,21,1,68,21,1,7,0,25,8,21,1,1,0,18,0,24,19,21,0,17,9,21,0,15,9,21,1,3,21,0,5,7,15,160,21,1,8,21,1,53,8,21,1,1,0,18,0,24,19,21,0,15,9,3,4,21,1,0,21,1,2,21,1,5,0,28,21,1,1,0,26,3,2,21,1,0,0,15,21,1,7,0,26,8,8,3,2,21,1,0,0,15,21,1,7,0,24,8,8,8,8,0,18,21,1,7,0,24,8,19,9,22,0,18,11,14,21,0,4,21,0,18,16,0,24,21,0,7,0,30,8,3,2,21,1,25,15,161,7,16,0,24,21,1,50,3,2,0,1,21,1,29,0,25,0,28,3,2,19,3,2,21,1,0,21,0,8,8,16,25,21,0,1,21,1,49,21,1,55,7,21,0,2,17,0,17,16,21,1,25,0,10,7,0,25,17,25,21,0,2,0,18,0,25,17,21,0,1,3,2,21,1,0,21,0,2,0,18,0,24,17,8,25,21,0,1,0,17,16,0,20,21,1,56,7,16,21,1,25,0,9,0,10,0,15,19,0,9,21,1,2,19,7,0,24,17,0,8,0,25,17,25,0,3,21,1,8,21,1,1,0,22,21,1,3,3,0,7,0,17,21,1,58,21,1,6,21,0,2,8,19,8,8,21,1,60,21,1,1,0,22,21,1,2,8,21,0,1,19,3,2,21,1,0,0,17,21,1,5,21,1,23,8,21,1,18,0,24,19,8,25,21,0,1,0,17,16,0,18,0,24,17,21,1,58,16,22,0,3,11,14,21,0,1,0,17,16,0,20,21,1,58,21,1,57,21,0,3,19,7,16,21,1,25,0,10,7,0,25,17,0,7,0,52,17,14,21,0,3,21,1,25,0,10,7,0,25,17,0,19,16,0,17,21,0,3,17,0,20,21,1,4,21,1,13,21,1,8,0,18,8,7,7,21,0,1,17,25,0,30,22,0,3,11,22,0,4,11,14,3,0,22,0,5,11,14,21,0,1,22,0,6,11,14,21,0,1,0,20,21,1,23,7,16,21,1,36,16,0,20,15,162,7,16,25,21,0,1,0,17,16,22,0,3,11,21,1,23,16,22,0,4,11,14,21,0,3,0,20,21,1,58,7,16,22,0,5,11,14,21,0,5,0,18,0,24,17,21,1,23,16,22,0,6,11,14,21,0,1,0,14,16,22,0,7,11,14,21,0,5,0,20,21,1,23,0,14,21,0,6,19,7,16,21,1,25,0,10,7,0,25,17,0,7,0,53,17,14,21,0,7,21,1,17,21,0,6,17,0,7,0,54,17,14,15,163,22,0,8,11,14,21,0,1,21,1,58,16,22,0,9,11,14,0,25,22,0,10,11,14,0,24,21,1,18,16,22,0,11,11,22,0,12,11,14,21,0,7,0,19,16,21,1,49,15,164,7,21,0,9,21,1,39,16,21,0,8,0,10,7,0,25,17,21,1,39,16,17,14,21,1,49,15,165,21,0,3,0,20,0,17,7,16,7,7,22,0,13,11,14,21,0,11,21,0,13,15,166,3,2,21,1,0,21,0,6,21,1,18,21,0,7,17,8,21,0,12,17,25,21,0,2,21,1,23,16,22,0,3,11,14,21,0,1,21,1,23,16,22,0,4,11,14,21,0,3,21,1,17,21,0,4,17,0,7,0,57,17,14,21,0,4,0,19,16,0,20,21,0,1,21,1,8,0,18,8,21,1,8,0,10,21,1,7,21,0,2,21,1,8,0,18,8,8,21,1,1,3,2,21,1,0,21,1,2,0,15,21,0,3,19,8,8,7,16,25,21,0,1,22,0,2,22,0,3,22,0,4,4,3,11,14,0,60,21,1,27,21,0,2,17,21,1,27,0,59,17,22,0,5,11,14,0,61,22,0,6,11,14,0,62,22,0,7,11,14,15,167,25,21,0,1,21,1,22,16,22,0,5,11,21,1,18,21,1,7,21,0,2,8,21,1,9,21,0,4,8,16,14,21,0,5,0,19,16,0,20,21,0,1,0,8,21,0,2,17,21,1,8,0,8,8,7,0,20,0,24,21,1,8,21,1,18,8,21,1,9,0,32,8,7,9,0,20,0,15,21,1,7,21,0,2,8,21,1,9,0,32,8,7,3,2,21,1,0,21,0,1,21,1,18,0,24,17,8,16,25,21,0,1,14,0,8,21,1,21,0,24,19,0,19,9,0,9,21,1,21,0,24,19,0,19,9,0,20,0,8,7,21,1,1,21,1,5,21,1,18,8,19,3,2,21,1,0,21,1,18,21,1,7,0,24,8,8,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,65,17,14,21,0,2,0,14,21,1,6,0,9,8,21,0,1,17,22,0,3,11,14,21,0,3,0,15,0,24,17,0,7,0,66,17,14,21,0,3,21,1,17,0,25,17,0,7,0,67,17,14,21,0,1,21,1,26,0,25,17,22,0,4,11,14,21,0,4,21,1,23,16,0,19,16,0,20,21,1,3,21,0,2,21,1,58,16,7,0,18,21,0,3,0,9,0,25,17,21,1,8,0,8,8,19,0,14,21,0,4,21,1,8,0,18,8,19,7,16,21,1,25,0,10,7,0,25,17,0,7,0,68,17,14,21,0,4,21,1,25,0,10,7,0,25,17,25,21,0,1,21,1,69,21,0,2,17,22,0,3,11,14,21,0,2,0,25,21,1,23,3,2,21,1,0,21,1,1,0,14,21,1,6,0,15,8,21,0,1,19,8,16,0,10,21,0,3,17,22,0,4,11,14,21,0,1,21,1,23,16,0,10,21,0,3,17,0,19,16,0,20,21,0,2,21,1,13,16,21,1,8,0,18,8,21,1,3,21,0,1,0,17,16,7,0,18,21,0,4,21,1,8,0,9,8,19,3,2,21,1,0,0,15,21,1,7,21,0,4,8,8,7,16,0,17,21,0,1,21,1,58,16,17,25,21,0,1,21,1,69,21,0,2,17,22,0,3,11,14,21,0,1,21,1,23,16,0,10,21,0,3,17,22,0,4,11,14,21,0,2,0,25,21,1,23,3,2,21,1,0,21,1,1,0,14,21,1,6,0,15,8,21,0,1,19,8,16,0,10,21,0,3,17,22,0,5,11,14,21,0,5,0,9,21,0,4,17,22,0,6,11,14,21,0,4,0,19,16,0,20,21,1,3,21,0,1,0,17,16,7,0,18,21,0,5,21,1,8,0,8,8,19,21,1,3,21,0,2,21,1,13,16,7,0,18,21,0,6,21,1,8,0,9,8,19,3,2,21,1,0,0,15,21,1,7,21,0,6,8,8,7,16,0,17,21,0,1,21,1,58,16,17,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,65,17,14,21,0,1,21,1,26,0,25,17,21,1,1,21,1,25,0,10,7,0,25,19,0,19,9,21,1,8,0,17,8,16,0,20,21,0,1,0,3,16,7,16,25,21,0,2,0,14,16,21,1,17,0,25,17,0,7,0,69,17,14,21,0,2,21,1,13,16,22,0,2,12,21,1,23,16,22,0,3,11,14,21,0,1,21,0,3,21,1,18,0,24,17,21,1,9,21,1,1,0,22,15,168,8,8,21,0,2,17,25,21,0,1,0,30,21,1,102,21,0,4,8,21,0,2,17,25,21,0,1,22,0,3,11,14,15,169,15,170,3,2,21,1,0,21,1,2,21,1,5,21,1,57,21,1,18,21,0,2,19,8,8,25,21,0,2,21,1,76,21,0,1,17,21,1,20,16,0,10,21,0,2,17,0,9,21,0,1,17,25,21,0,2,21,0,1,3,2,0,18,21,0,1,21,1,19,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,18,21,0,1,21,1,18,21,0,2,17,17,25,21,0,1,21,0,2,0,18,0,25,17,3,2,21,1,0,21,1,88,21,1,7,21,1,3,21,0,2,0,18,0,24,17,7,8,8,25,21,0,1,0,23,21,0,1,0,3,0,24,21,0,2,16,19,8,25,21,0,2,21,1,88,16,21,1,89,0,25,17,0,7,0,79,17,14,21,0,2,21,1,13,16,22,0,3,11,14,21,0,3,0,20,21,1,12,7,16,21,1,93,16,22,0,4,11,21,1,25,21,1,91,7,16,22,0,5,11,14,21,0,5,21,1,89,0,25,17,0,7,0,80,17,14,21,0,1,21,1,13,16,22,0,6,11,21,1,87,16,22,0,7,11,14,21,0,3,21,1,25,21,1,84,7,15,171,3,2,21,1,0,21,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,21,1,87,21,0,8,17,21,1,9,21,1,1,0,22,15,172,8,8,16,0,17,21,0,3,17,25,15,173,22,0,3,11,14,15,174,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,0,21,1,10,8,16,25,21,0,1,21,1,88,16,21,1,89,0,25,17,0,7,0,86,17,14,21,0,1,21,1,97,16,22,0,1,12,14,21,0,1,21,1,87,16,0,28,21,1,8,21,1,90,8,21,1,82,21,1,90,21,1,7,0,25,8,19,16,0,7,0,87,17,14,21,0,1,0,20,21,1,11,7,16,21,1,25,21,1,82,7,16,0,7,0,88,17,14,21,0,1,25,21,0,1,21,1,5,21,1,99,8,21,1,1,21,1,5,21,1,85,8,21,1,49,0,18,7,21,1,87,21,1,8,21,1,4,21,1,79,21,1,91,0,25,19,21,1,92,21,1,2,19,7,8,19,0,25,0,24,3,2,0,23,0,26,3,1,8,19,25,21,0,1,21,1,100,21,0,5,7,21,0,2,17,22,0,6,11,21,1,86,0,24,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,175,22,0,9,11,14,21,0,1,21,0,9,21,0,6,7,21,0,2,17,25,21,0,1,21,1,100,21,0,5,7,21,1,49,21,1,92,21,1,8,21,1,80,8,21,1,92,21,1,81,0,24,19,3,2,21,1,0,21,1,1,21,1,90,0,24,19,8,7,21,1,88,21,1,6,21,1,14,8,19,21,0,2,17,22,0,6,11,14,15,176,22,0,7,11,14,21,1,1,21,1,85,9,21,0,7,21,1,1,0,20,21,1,85,7,9,3,3,21,1,0,21,1,88,21,1,8,21,1,89,8,21,1,91,0,25,19,21,1,84,0,24,21,1,8,21,1,86,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,18,21,1,7,21,1,87,21,1,4,21,1,92,7,0,25,19,8,16,17,21,1,49,21,0,4,7,21,0,2,21,0,7,21,0,6,0,18,0,24,17,17,17,21,1,86,16,25,21,0,1,21,1,88,16,21,1,90,0,25,17,0,7,0,89,17,14,21,0,4,22,0,5,11,14,15,177,22,0,6,11,14,21,0,1,21,0,6,15,178,3,2,21,1,0,0,25,0,23,21,1,87,21,1,85,0,24,19,8,8,21,0,2,17,25,21,0,1,21,1,58,21,1,6,21,1,14,8,21,0,2,17,22,0,3,11,14,21,0,3,0,20,21,1,87,7,16,22,0,4,11,21,1,25,21,1,81,7,0,25,17,22,0,5,11,14,21,0,4,21,1,92,21,0,5,17,21,1,89,0,25,17,21,1,25,21,1,82,7,16,0,7,0,91,17,14,21,0,3,21,1,49,21,1,29,21,1,7,0,25,21,1,92,21,0,5,17,0,19,16,21,1,8,21,1,91,8,8,7,21,0,5,21,1,93,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,25,21,1,57,7,16,0,7,0,92,17,14,21,0,3,21,1,49,0,25,21,1,1,0,18,0,24,19,3,2,21,1,0,21,1,2,8,7,21,0,4,21,1,88,21,0,5,17,17,21,1,25,21,1,91,7,16,22,0,7,11,14,21,0,1,21,1,97,21,1,6,21,1,27,8,21,0,2,17,21,1,97,21,0,6,0,18,0,24,17,21,1,27,21,0,7,3,1,17,17,25,21,0,2,21,1,10,21,1,9,21,1,97,0,18,0,24,19,8,16,22,0,2,12,14,21,0,2,21,1,12,16,0,7,0,41,17,14,21,0,2,22,0,3,11,22,0,4,11,14,21,0,1,21,1,29,21,0,1,21,1,87,16,21,1,84,21,0,3,17,0,19,16,0,21,21,1,4,15,179,21,1,9,15,180,8,7,7,16,17,25,21,0,1,21,1,87,21,1,6,21,1,88,8,21,0,2,17,0,7,0,93,17,14,21,0,1,21,1,106,21,0,2,17,25,21,0,1,0,20,21,1,11,7,16,21,1,25,21,1,82,7,16,0,7,0,94,17,14,21,0,1,21,1,90,0,30,17,21,1,25,21,1,82,7,16,0,7,0,95,17,14,21,0,1,0,6,21,0,1,0,5,16,22,0,5,11,17,22,0,6,11,14,0,24,22,0,7,11,14,21,0,5,0,20,21,1,110,21,1,5,0,20,15,181,7,8,21,0,4,9,7,16,25,21,0,1,21,1,88,16,21,1,88,0,25,17,0,7,0,96,17,14,21,1,115,21,1,1,7,22,0,3,11,14,21,0,1,21,0,3,0,3,0,24,21,1,5,21,1,110,8,19,0,20,15,182,7,21,1,25,0,20,0,20,21,1,27,7,7,7,3,0,21,1,85,16,21,1,85,16,19,0,3,0,20,0,24,7,3,0,21,1,8,21,1,97,8,0,3,21,1,1,19,9,19,3,2,21,1,0,21,1,57,21,1,85,0,25,19,8,16,25,21,0,1,21,1,10,16,0,7,0,97,17,14,21,0,2,21,1,57,21,1,86,0,26,19,21,1,9,21,1,16,21,1,5,21,1,14,8,8,16,22,0,2,12,14,21,0,2,21,1,88,16,21,1,88,0,25,17,0,7,0,98,17,14,21,0,2,0,20,21,1,88,7,16,21,1,25,21,1,91,7,16,22,0,3,11,14,21,0,1,21,1,88,16,21,1,90,21,0,3,17,0,7,0,99,17,14,21,0,1,21,1,58,16,21,1,108,21,0,3,17,21,1,88,21,0,2,0,20,21,1,58,7,16,21,1,65,16,17,21,1,25,21,1,82,7,16,0,7,0,100,17,14,21,0,2,0,20,21,1,97,7,16,22,0,2,12,0,20,21,1,87,7,16,22,0,4,11,14,21,1,3,21,0,1,7,21,1,96,21,0,1,21,1,26,21,0,3,17,21,1,8,21,1,27,8,19,22,0,5,11,14,21,0,4,21,1,25,21,1,84,7,16,3,1,21,0,5,16,21,1,8,21,1,29,8,22,0,6,11,14,21,0,2,0,18,21,1,7,0,24,8,21,1,115,21,0,6,7,9,0,20,21,1,115,21,1,1,7,7,21,1,84,21,0,4,21,1,111,16,21,1,113,0,25,17,0,21,21,1,84,7,16,21,1,111,16,19,21,1,25,0,20,0,20,21,1,91,7,7,7,9,0,20,21,0,6,7,9,3,2,21,1,0,21,1,87,21,1,87,0,25,19,8,16,0,3,21,0,2,0,20,0,24,7,16,21,0,5,16,17,25,21,0,2,21,1,88,16,21,1,88,0,25,17,0,7,0,101,17,14,21,0,1,21,1,58,16,22,0,3,11,21,1,87,21,1,6,21,1,88,8,21,0,2,17,0,7,0,102,17,14,21,0,2,0,20,21,1,11,7,16,21,1,25,21,1,82,7,16,0,7,0,103,17,14,21,0,3,21,1,85,21,1,82,21,1,92,21,1,8,21,1,89,8,19,21,0,2,17,21,1,25,21,1,82,7,16,0,7,0,104,17,14,0,24,21,1,85,21,0,2,17,21,1,84,21,0,3,17,21,1,91,21,0,2,17,22,0,2,12,14,21,0,2,21,1,87,16,21,1,93,21,1,7,21,1,110,8,16,21,1,92,16,21,1,25,21,1,1,21,1,84,21,0,3,21,1,8,0,18,8,19,21,1,91,21,0,2,21,1,8,0,18,8,19,7,0,24,17,21,1,4,0,18,7,21,0,1,21,1,97,16,17,25,21,0,2,0,20,21,0,1,21,1,8,21,1,119,8,7,16,25,21,0,1,21,1,88,21,1,7,0,24,8,21,1,25,21,1,83,7,9,21,1,6,21,1,4,21,1,92,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,24,21,0,3,3,2,15,183,3,2,21,1,0,0,24,21,1,88,21,0,3,17,8,21,0,2,17,25,21,0,4,22,0,5,11,14,21,0,2,22,0,6,11,14,21,0,1,22,0,7,11,14,15,184,22,0,8,11,14,21,0,4,21,1,88,21,1,7,0,24,8,21,1,9,21,0,1,8,9,21,0,8,3,2,0,18,21,0,6,21,1,87,0,25,17,17,25,21,0,1,22,0,2,11,14,21,1,85,21,1,7,0,24,8,21,1,9,15,185,8,25,21,0,2,21,1,88,16,21,1,4,21,1,92,7,0,25,17,22,0,5,11,14,21,0,5,21,1,90,0,24,17,0,7,0,105,17,14,21,0,1,21,1,88,16,21,1,90,21,0,5,17,0,7,0,106,17,14,21,0,2,21,1,26,0,25,17,22,0,6,11,21,1,25,21,1,84,7,16,22,0,7,11,14,0,24,21,1,122,21,0,2,21,1,97,16,21,1,8,0,18,8,21,1,6,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,87,16,0,25,0,25,21,1,8,21,1,92,21,1,5,21,1,110,8,8,21,1,84,21,0,7,19,0,20,21,1,91,21,1,7,21,0,7,8,21,1,8,21,0,8,8,7,9,21,1,4,21,1,90,7,0,24,19,21,1,25,21,1,82,7,9,3,2,21,1,0,21,1,85,21,1,7,0,24,8,8,16,0,7,0,107,17,14,21,0,1,21,1,88,16,21,1,4,21,1,92,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,16,16,21,1,26,21,0,9,17,22,0,10,11,14,21,0,10,21,1,121,21,0,6,17,22,0,11,11,14,21,0,11,21,1,25,21,1,122,21,0,1,21,1,97,16,21,1,8,0,18,8,21,1,8,21,0,4,21,1,7,21,0,2,21,1,97,16,21,1,8,0,18,8,8,8,7,7,16,22,0,12,11,14,21,1,4,0,24,7,21,1,90,21,0,12,21,1,7,21,1,84,21,1,7,21,0,6,21,1,25,21,1,84,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,110,16,0,20,21,0,1,21,1,58,16,21,1,8,0,18,8,7,16,21,1,25,21,1,84,7,21,1,110,9,21,1,8,21,1,97,8,16,21,1,84,21,0,10,21,1,25,21,1,84,7,16,17,0,20,15,186,21,1,7,21,0,2,21,1,87,16,8,7,16,0,3,0,24,17,25,21,0,1,22,0,2,11,14,21,1,104,21,1,82,7,21,1,93,9,0,21,21,1,82,7,21,1,104,21,1,91,7,9,3,2,0,18,21,0,1,17,22,0,3,11,14,15,187,0,3,0,24,19,25,21,0,1,21,1,88,16,21,1,90,0,25,17,0,7,0,110,17,14,21,0,1,21,1,127,16,22,0,5,11,14,21,0,1,21,1,87,16,21,1,110,16,0,20,0,25,21,1,1,21,0,1,21,1,88,21,1,85,0,25,19,21,1,9,21,1,74,21,1,85,7,8,16,21,1,29,21,0,5,17,21,1,8,0,18,8,21,1,6,21,1,58,8,0,25,21,1,8,21,1,92,8,19,3,2,21,1,0,21,1,85,21,1,7,0,24,8,8,7,16,21,0,4,21,0,5,17,21,1,29,21,0,5,21,1,130,16,17,0,3,0,24,17,25,21,0,2,21,1,88,16,22,0,3,11,14,21,0,1,21,1,88,16,21,1,90,21,0,3,17,0,7,0,111,17,14,21,0,1,21,0,3,21,1,126,21,1,110,8,21,0,2,21,1,58,16,17,21,0,3,21,1,126,21,1,57,8,21,0,2,17,0,3,0,24,17,25,21,0,2,21,1,88,16,21,1,89,0,25,17,0,7,0,112,17,14,21,0,1,21,1,58,16,21,1,87,21,1,6,21,1,90,8,21,0,2,17,0,7,0,113,17,14,21,0,2,21,1,97,16,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,0,7,0,114,17,25,21,0,1,21,1,58,16,21,1,136,21,0,2,17,0,20,21,1,25,21,1,80,7,7,16,21,1,110,16,0,20,21,1,3,21,0,1,7,21,1,120,21,1,29,21,1,7,21,0,2,8,19,7,16,25,21,0,1,21,1,139,21,0,2,17,14,21,0,2,21,1,97,16,22,0,2,12,14,21,0,2,21,1,138,16,21,1,93,16,21,1,25,21,1,91,7,16,21,1,92,21,0,1,21,1,88,16,17,22,0,3,11,14,21,0,3,21,1,85,21,0,2,17,21,1,25,21,1,82,7,16,0,7,0,115,17,14,21,0,1,21,1,140,21,0,3,21,1,110,16,21,1,1,21,1,112,21,1,4,21,1,138,21,1,5,21,1,93,8,7,19,21,0,2,17,21,1,135,21,0,2,17,17,25,21,0,1,21,1,139,21,0,2,17,14,21,0,2,21,1,97,16,22,0,2,12,14,21,0,1,21,1,88,16,22,0,3,11,14,21,0,2,21,0,3,21,1,8,21,1,85,8,21,1,82,21,1,138,19,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,1,21,1,140,21,0,3,21,1,110,16,21,1,1,21,1,112,21,1,4,21,1,138,21,1,5,21,1,93,8,7,19,21,0,2,17,21,1,135,21,0,2,17,21,1,130,16,17,25,21,0,2,21,1,88,16,21,1,4,21,1,92,7,0,25,17,22,0,3,11,14,21,0,3,21,1,90,0,24,17,0,7,0,116,17,14,21,0,1,21,1,88,16,21,1,90,21,0,3,17,0,7,0,117,17,14,21,0,1,21,1,137,21,1,7,21,0,2,8,21,1,97,21,1,5,21,1,144,21,1,8,21,1,74,21,1,134,7,8,8,21,1,97,21,1,3,0,26,7,21,1,135,21,1,58,19,19,9,21,1,6,21,1,137,8,21,0,2,17,25,21,0,1,15,188,21,0,5,21,1,147,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,21,1,174,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,24,22,0,7,11,22,0,8,11,14,21,0,6,0,24,21,1,125,15,189,8,16,14,0,24,15,190,0,23,21,1,3,15,191,7,8,21,0,2,17,22,0,9,11,14,21,0,1,3,1,22,0,10,11,14,15,192,21,1,7,21,0,9,8,22,0,11,11,14,21,0,7,21,0,11,21,0,4,17,22,0,12,11,14,21,0,8,21,1,92,16,21,0,10,21,0,11,21,1,7,21,1,174,8,3,2,21,1,148,21,1,85,21,1,7,0,24,8,8,21,0,4,17,22,0,13,11,14,21,0,6,0,24,21,1,125,21,1,3,21,0,12,21,0,13,3,2,7,21,1,147,0,24,21,1,8,21,1,85,8,19,21,1,147,21,1,79,19,8,16,25,21,0,1,21,0,4,21,0,2,17,22,0,6,11,14,21,0,6,21,0,5,21,0,2,17,21,1,57,21,0,1,17,21,1,159,16,14,21,0,6,25,21,0,1,21,1,88,16,21,1,88,0,25,17,21,1,158,16,14,21,0,1,21,1,135,16,22,0,3,11,14,21,0,3,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,3,0,5,16,22,0,4,11,14,0,25,21,1,90,21,0,4,17,21,1,25,21,1,82,7,16,21,1,159,16,14,21,0,4,21,1,93,16,21,1,112,16,22,0,5,11,14,21,0,5,21,1,49,0,30,7,16,21,1,135,21,0,1,21,1,49,21,1,87,7,16,21,1,112,16,17,21,1,146,21,0,5,21,1,135,21,0,3,17,21,1,127,16,17,25,21,0,2,21,1,88,16,21,1,88,0,25,17,21,1,158,16,14,21,0,2,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,1,21,1,135,21,1,6,21,1,146,21,1,7,21,1,127,8,8,21,0,2,21,1,136,16,17,25,0,26,21,1,76,21,0,2,21,1,87,16,17,21,1,110,16,21,1,84,0,26,17,22,0,3,11,14,21,1,3,21,0,1,3,1,21,1,135,21,0,2,21,1,146,21,0,3,21,1,91,0,25,17,17,17,7,21,1,147,21,1,85,21,1,137,21,0,2,21,1,146,21,0,3,17,19,21,1,147,9,19,25,21,0,1,21,1,10,16,21,1,159,16,14,21,0,1,21,1,88,16,21,1,88,0,24,17,21,1,159,16,14,21,0,1,21,1,147,16,25,21,0,2,21,1,88,21,1,6,21,1,92,8,21,0,1,17,22,0,3,11,14,21,0,3,0,25,21,1,8,21,1,90,8,21,1,82,21,1,90,21,1,7,0,24,8,19,16,21,1,159,16,14,21,0,2,0,25,21,1,87,3,2,21,1,148,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,87,16,21,1,90,21,0,4,17,21,1,159,16,14,21,0,1,21,1,146,21,1,108,21,1,7,21,0,4,8,3,2,21,1,148,21,0,3,8,16,21,1,57,21,0,2,17,21,1,159,16,14,21,0,1,21,1,109,21,0,4,17,25,21,0,1,21,1,87,16,21,1,88,0,26,17,21,1,159,16,14,21,0,1,21,1,146,16,21,1,57,21,0,2,17,21,1,159,16,14,21,0,1,21,1,146,0,25,17,25,21,0,1,21,1,87,16,21,1,88,0,25,17,21,1,159,16,14,21,0,1,21,1,146,16,25,21,0,1,21,1,88,16,21,1,88,0,25,17,21,1,158,16,14,21,0,1,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,1,21,1,109,21,1,7,0,25,8,21,1,90,21,1,109,21,1,7,0,30,8,19,21,1,25,21,1,82,7,9,16,21,1,159,16,14,21,0,1,0,5,16,25,21,0,1,21,1,16,21,1,6,21,0,4,21,1,48,0,20,21,0,4,7,8,8,21,0,2,17,25,21,0,5,14,21,0,1,21,0,4,21,0,2,17,25,21,0,1,21,1,174,16,25,21,0,2,21,1,8,21,0,1,8,0,23,21,0,2,21,0,1,9,8,25,21,1,147,21,1,7,0,25,8,21,0,1,21,1,8,15,193,8,21,1,147,21,1,7,0,24,8,19,25,21,1,1,21,1,5,21,1,57,8,21,1,85,0,24,19,21,1,159,9,21,1,2,21,1,49,21,1,149,21,0,1,7,7,19,25,21,1,1,21,1,5,21,1,57,8,21,1,85,0,24,19,21,1,159,9,21,1,2,0,24,21,1,5,21,1,158,8,0,23,21,1,166,21,1,149,21,0,1,7,7,8,19,25,21,1,1,21,1,5,21,1,88,8,21,1,85,0,24,19,21,1,159,9,21,1,2,21,1,74,21,1,149,21,0,1,7,21,1,1,21,1,7,21,1,10,21,1,5,21,1,159,8,8,9,7,19,25,21,1,1,21,1,5,21,1,88,8,21,1,85,0,24,19,21,1,159,9,21,1,2,0,24,21,1,5,21,1,158,8,0,23,21,1,87,21,1,85,0,25,19,21,1,153,21,1,109,21,1,7,0,25,8,21,1,49,21,1,149,21,0,1,7,7,21,1,109,21,1,7,0,30,8,19,21,1,135,21,1,146,19,8,8,19,25,21,1,147,21,1,7,0,25,8,21,0,1,21,1,8,15,194,8,21,1,146,21,1,7,0,24,0,26,3,2,8,19,25,21,0,2,21,1,167,21,0,1,8,25,21,1,149,21,0,2,7,22,0,3,11,14,21,0,3,21,1,7,21,0,1,8,0,23,21,0,3,8,21,1,149,21,0,1,7,9,25,21,0,1,21,1,155,21,1,149,21,0,2,7,8,25,21,0,1,21,1,153,21,0,2,8,21,1,161,21,0,1,21,1,92,16,21,1,153,21,0,2,8,8,25,21,0,1,21,1,92,16,21,1,153,21,0,2,8,25,21,1,149,21,0,1,7,0,23,21,1,149,21,0,2,7,8,25,21,1,149,21,0,1,7,21,1,7,21,0,2,8,25,21,0,1,0,23,21,1,160,8,25,21,1,149,21,0,2,7,21,1,149,21,0,1,7,9,0,23,21,0,1,21,1,3,0,24,21,1,5,21,1,158,8,7,15,195,3,2,21,1,148,21,1,1,21,1,5,21,1,170,8,8,21,0,2,17,8,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,21,1,170,21,1,93,9,22,0,6,11,14,21,0,5,15,196,15,197,21,1,3,21,1,160,7,3,2,21,1,148,21,1,1,21,1,5,21,0,6,8,8,3,2,21,1,148,21,1,2,21,1,5,21,0,6,8,8,21,0,3,17,25,21,1,1,21,1,57,21,1,5,21,1,159,8,21,0,1,19,21,1,2,21,1,1,19,25,21,0,1,21,1,174,16,21,1,1,15,198,3,2,21,1,148,0,24,21,1,1,21,1,5,0,1,8,21,1,146,0,24,0,35,3,2,19,21,1,58,0,31,21,1,167,3,2,19,3,2,21,1,148,21,1,58,21,1,7,21,1,3,21,1,160,7,8,21,1,82,21,1,58,19,8,8,21,0,1,17,25,21,1,85,21,1,137,21,0,1,21,1,135,16,19,21,1,147,9,21,1,4,21,1,147,7,21,0,1,21,1,49,21,1,87,7,16,21,1,87,21,1,135,21,1,112,19,16,19,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,94,16,25,0,25,0,9,21,1,6,17,22,1,6,12,14,21,0,1,0,18,21,1,6,17,25,21,1,8,21,1,7,21,1,5,0,18,21,0,1,17,17,22,1,8,12,25,21,0,2,0,16,16,22,0,5,11,14,21,0,2,0,14,16,0,19,16,21,2,25,0,10,21,2,7,21,0,1,0,16,16,21,2,8,0,18,8,0,14,21,0,5,21,2,8,0,18,8,19,8,7,0,25,17,0,7,0,37,17,14,21,0,5,21,2,25,0,10,7,0,25,17,0,19,16,0,20,21,0,1,0,17,16,21,2,8,0,18,8,21,0,4,21,0,2,0,17,16,21,2,8,0,18,8,19,7,16,0,17,21,0,5,17,25,21,0,2,0,16,16,22,0,5,11,14,21,0,2,0,14,16,22,0,6,11,14,21,0,1,0,16,16,22,0,7,11,14,21,0,6,0,19,16,21,2,25,0,10,21,2,7,21,0,7,21,2,8,0,18,8,0,14,21,0,5,21,2,8,0,18,8,19,8,7,0,25,17,0,7,0,38,17,14,21,0,6,0,9,21,0,1,0,14,16,17,0,19,16,21,2,25,0,10,21,2,7,0,8,21,2,7,21,0,6,8,21,2,4,0,18,7,21,0,7,19,8,7,0,25,17,22,0,8,11,14,21,0,2,0,17,16,22,0,9,11,14,21,0,1,0,17,16,22,0,10,11,14,21,0,8,0,19,21,2,6,0,20,21,2,3,21,0,10,7,0,18,0,8,21,2,7,0,10,21,2,7,21,0,8,8,8,19,21,0,4,21,0,9,21,2,8,0,18,8,19,7,8,21,0,9,21,2,23,16,17,0,17,16,0,17,21,0,7,17,25,21,0,1,21,2,31,21,0,4,7,21,0,2,17,25,21,0,1,0,20,15,199,21,0,2,7,7,16,25,21,0,2,0,20,15,200,21,0,1,7,7,16,25,21,1,6,0,10,0,26,17,0,15,21,0,1,21,2,25,21,2,20,7,16,22,1,10,12,0,9,21,0,1,21,2,25,21,2,21,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,4,0,24,7,21,2,19,0,24,21,2,122,21,1,8,21,2,8,0,18,8,21,2,6,21,0,4,8,7,21,1,7,17,19,22,0,5,11,14,21,2,1,21,1,6,3,2,21,2,0,0,15,21,2,7,21,1,6,8,8,22,0,6,11,14,0,24,0,14,21,1,6,17,0,8,21,1,6,17,0,4,0,26,17,21,2,21,16,22,0,7,11,0,19,16,0,20,21,2,1,0,8,0,25,19,0,9,21,0,7,19,0,12,0,26,19,7,16,21,2,25,15,201,7,21,1,6,0,19,16,17,25,21,0,1,0,20,21,2,12,7,16,21,2,25,0,10,7,0,25,17,0,7,0,41,17,14,0,25,0,9,21,1,3,17,22,0,3,11,14,21,2,1,0,9,21,0,3,19,21,2,4,0,18,7,21,1,3,0,19,16,0,20,0,9,21,2,7,21,0,3,8,7,16,0,21,21,2,1,21,2,4,0,18,7,21,0,1,19,0,14,0,24,19,0,10,0,9,19,0,8,21,2,1,19,7,16,19,22,0,4,11,14,21,0,1,0,21,0,8,7,16,21,2,8,0,18,8,22,0,5,11,14,0,24,21,0,4,16,22,0,6,11,21,0,5,16,22,0,7,11,14,21,0,3,21,0,5,16,0,19,16,0,20,15,202,7,16,25,21,0,1,0,9,21,1,3,17,0,19,16,0,20,0,8,21,2,7,21,0,1,8,7,16,25,21,0,1,0,3,21,0,2,19,25,21,0,2,0,22,21,0,1,21,2,95,21,0,2,17,8,25,21,2,1,21,2,10,9,0,14,21,2,6,0,14,8,0,16,21,2,6,21,2,49,0,14,7,8,21,2,25,0,10,7,0,25,19,3,3,21,2,25,15,203,7,16,22,0,3,11,14,15,204,22,0,4,11,14,21,2,14,21,0,4,15,205,3,2,21,2,0,21,2,1,21,2,5,21,2,25,21,0,3,7,8,8,3,2,21,2,0,21,2,1,0,18,0,24,19,21,2,10,9,8,22,0,5,11,14,0,24,22,0,6,11,14,21,0,1,15,206,16,14,21,0,1,21,0,2,3,2,21,0,5,0,24,17,22,0,7,11,14,21,0,6,0,19,16,0,20,15,207,7,16,22,0,8,11,14,21,0,8,21,0,4,0,14,21,0,7,17,21,2,9,21,2,3,21,2,50,7,8,16,25,15,208,21,2,7,21,0,2,8,22,0,3,11,14,15,209,22,0,4,11,14,15,210,21,2,7,0,24,8,22,0,5,11,14,21,0,1,21,2,3,21,0,2,7,0,18,0,24,19,0,18,0,25,19,21,0,5,3,2,21,2,0,21,1,7,21,2,5,21,2,10,8,8,16,25,21,1,6,21,0,1,16,25,21,0,4,22,0,6,11,14,21,0,1,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,5,21,2,10,21,2,19,21,0,8,19,21,2,9,15,211,21,2,5,21,1,6,8,8,16,21,0,7,21,0,2,17,22,0,10,11,14,21,0,10,21,0,9,21,2,9,15,212,8,16,25,21,0,1,15,213,21,0,1,21,0,2,21,0,4,3,3,7,3,2,21,2,0,21,2,1,21,1,8,9,8,25,21,1,5,0,23,21,0,1,8,25,21,0,1,0,23,21,1,5,8,25,21,1,5,21,0,1,3,2,21,2,0,21,0,4,0,9,0,25,19,21,2,6,0,10,0,23,21,2,1,8,8,8,25,21,0,1,22,0,3,11,14,15,214,25,21,0,1,22,0,3,11,14,15,215,25,21,0,2,21,0,1,16,25,21,0,1,21,2,49,21,1,18,7,16,25,21,0,1,21,0,2,16,25,21,0,1,0,14,21,2,7,21,1,4,8,0,9,0,25,19,21,2,9,15,216,8,16,14,21,1,5,0,18,0,25,0,8,21,1,3,17,22,1,3,12,17,25,21,0,2,22,0,5,11,14,21,0,4,22,0,6,11,14,21,0,1,0,20,15,217,7,16,25,21,0,2,22,0,3,11,14,21,1,9,0,18,21,0,1,17,22,0,4,11,14,21,1,5,0,20,0,18,21,2,7,21,0,1,8,7,16,22,0,5,11,14,21,0,4,0,19,16,0,20,21,2,3,21,0,5,7,0,18,0,10,21,2,7,21,0,3,8,19,7,16,22,0,6,11,14,21,0,3,0,19,16,0,20,21,2,2,7,21,0,6,17,0,20,21,2,1,7,21,1,10,0,19,16,17,0,17,16,21,2,49,0,14,7,21,0,5,17,21,2,25,0,10,7,0,25,17,0,7,0,55,17,14,21,0,6,21,2,36,16,22,0,7,11,14,21,0,7,21,2,23,16,0,19,16,0,20,21,0,6,21,1,8,0,8,7,0,24,17,21,2,29,21,0,7,17,21,2,8,0,18,8,21,2,8,0,9,8,7,16,22,0,8,11,14,21,0,8,0,20,21,2,1,7,21,1,12,17,21,2,49,0,8,7,21,0,7,0,20,21,0,6,21,2,8,0,18,8,21,2,8,0,10,8,7,21,1,12,17,17,22,1,12,12,14,21,0,7,0,20,0,8,21,2,7,21,0,4,21,2,8,0,10,8,8,7,21,1,11,17,22,1,11,12,14,21,0,4,0,10,22,1,10,13,25,21,0,4,0,18,21,0,1,17,0,18,21,0,2,17,25,21,2,29,21,2,7,21,1,7,0,9,21,1,6,17,0,19,16,0,20,0,8,21,2,7,21,1,7,8,7,16,8,22,0,3,11,14,21,1,5,0,18,0,24,17,21,0,3,16,22,0,4,11,14,21,1,5,0,20,21,0,3,21,2,49,0,14,7,21,0,4,19,21,2,25,0,10,7,9,7,16,21,2,25,0,10,7,0,25,17,0,7,0,56,17,14,21,0,4,21,2,25,0,10,7,16,22,0,5,11,0,19,16,0,17,21,0,4,17,22,0,6,11,14,21,0,6,0,20,21,2,2,7,21,0,1,17,21,1,13,21,0,6,0,20,0,8,21,2,7,0,10,21,2,7,21,0,5,8,8,7,21,0,2,17,17,25,21,0,2,0,14,16,21,2,17,0,25,17,0,7,21,1,6,17,14,21,0,2,21,2,13,16,22,0,2,12,14,21,0,2,0,20,21,2,11,7,16,21,2,25,0,10,7,0,25,17,0,7,21,1,7,17,14,21,0,2,21,2,23,16,22,0,3,11,14,21,0,1,21,2,58,16,21,2,23,21,2,8,21,2,19,8,21,2,9,15,218,8,21,0,3,17,22,0,4,11,14,15,219,22,0,5,11,14,0,24,21,2,18,16,22,0,6,11,14,0,25,22,0,7,11,14,15,220,22,0,8,11,14,0,24,22,0,9,11,14,21,0,3,0,19,16,0,20,21,0,2,21,2,8,0,18,8,15,221,21,1,4,15,222,7,21,0,8,21,2,2,19,3,2,21,2,0,21,1,3,8,21,0,4,21,2,8,0,18,8,19,7,16,22,0,10,11,14,21,0,1,21,2,16,16,21,2,1,0,22,0,17,21,2,7,21,0,4,8,15,223,3,2,21,2,0,21,0,6,0,14,16,21,2,18,0,24,17,8,8,16,25,21,0,1,0,14,16,0,15,21,1,3,17,0,7,0,70,17,14,21,0,2,0,20,21,2,12,7,16,21,2,25,0,10,7,16,0,7,0,71,17,14,21,0,1,21,2,58,16,22,0,3,11,14,21,1,3,0,19,16,0,20,21,0,2,21,2,8,0,18,8,0,9,21,0,3,21,2,8,0,18,8,19,0,8,0,25,19,7,16,22,0,4,11,14,21,0,4,0,20,0,15,21,2,7,0,24,8,7,16,21,2,25,0,10,7,16,0,7,0,72,17,14,21,0,3,21,2,29,21,1,3,0,9,21,2,7,21,2,23,8,21,0,3,17,0,19,16,0,20,0,8,21,2,7,21,1,3,8,7,16,17,22,0,5,11,21,2,25,0,10,7,0,25,17,22,0,6,11,14,0,25,0,9,21,1,3,17,15,224,16,21,2,27,21,0,6,3,1,17,0,21,0,10,7,16,21,2,39,16,22,0,7,11,14,21,0,2,21,2,1,21,2,49,15,225,7,21,0,7,19,21,2,25,0,20,0,8,7,7,9,21,2,6,0,20,0,8,7,8,21,0,4,17,0,25,21,2,8,0,14,8,0,9,0,25,19,21,2,9,21,2,4,0,19,0,17,21,0,5,19,21,2,8,0,20,0,8,7,8,7,8,21,0,6,17,0,20,21,0,1,0,17,16,21,2,8,0,18,8,7,16,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,73,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,14,16,21,2,17,0,25,17,0,7,0,74,17,14,21,0,1,21,2,58,16,21,2,23,21,2,6,0,15,8,21,0,2,17,0,7,0,75,17,14,21,0,2,21,2,23,16,22,0,3,11,14,21,0,2,0,17,16,21,2,8,0,18,8,22,0,4,11,14,21,0,1,21,0,3,21,2,18,0,24,17,21,2,9,15,226,8,0,24,17,25,21,0,1,21,2,49,21,2,1,0,25,3,2,21,2,0,21,2,2,8,7,21,1,4,17,21,2,25,21,2,84,7,16,22,0,3,11,14,21,0,3,21,2,85,0,24,17,0,7,0,81,17,14,21,1,4,21,2,87,16,0,19,16,21,2,84,21,1,4,17,21,2,25,21,2,91,7,16,22,0,4,11,14,21,1,3,0,18,21,0,4,17,21,2,151,16,22,0,5,11,14,0,34,21,2,85,21,0,5,17,0,7,0,82,17,14,21,2,88,21,2,7,21,2,80,8,0,7,0,83,19,21,2,2,21,2,1,19,22,0,6,11,14,21,0,3,21,2,76,21,1,7,17,21,0,6,21,2,80,21,2,81,3,3,21,2,0,21,0,5,21,2,80,0,26,17,8,16,22,0,7,11,14,21,1,3,21,2,49,21,2,1,21,0,7,3,2,21,2,0,21,2,2,8,7,21,1,4,17,22,1,3,12,14,21,0,7,21,2,84,21,0,3,17,21,0,5,21,2,88,0,28,17,21,2,9,21,2,85,21,2,7,21,1,7,8,21,2,9,15,227,8,8,16,25,21,1,8,0,19,16,0,20,21,2,2,7,21,2,7,0,3,21,2,5,21,2,85,8,8,15,228,3,2,21,2,0,21,1,7,21,2,85,0,24,17,8,21,0,1,17,25,21,0,1,21,2,12,16,0,7,0,84,17,14,21,0,1,0,19,16,25,21,0,1,21,2,88,16,21,2,88,0,25,17,0,7,0,85,17,14,21,0,1,0,20,21,1,3,7,16,21,2,25,0,20,21,2,27,21,2,7,21,2,97,8,7,7,3,0,21,2,85,16,17,0,3,21,0,1,0,20,0,24,7,16,17,25,21,1,9,21,1,7,21,2,91,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,49,21,0,5,7,21,2,2,21,2,5,0,20,21,0,1,21,2,8,21,0,5,8,7,8,21,2,1,21,2,5,0,20,21,2,1,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,0,21,2,57,21,2,6,21,2,14,8,21,2,89,21,0,4,21,2,81,0,24,17,19,21,2,83,0,24,21,2,89,21,0,4,17,21,2,82,21,1,7,17,19,21,2,96,0,26,19,21,2,25,21,2,91,21,2,7,0,26,21,2,8,21,2,84,8,8,7,9,8,21,0,2,17,25,21,0,1,21,2,58,16,21,2,29,21,0,2,0,19,16,17,22,0,3,11,14,21,0,1,21,2,26,21,0,2,17,22,0,4,11,21,2,25,21,2,84,7,16,22,0,5,11,14,21,0,5,0,19,16,21,2,97,21,0,4,17,22,0,6,11,14,21,0,1,15,229,0,22,21,2,3,21,0,3,21,2,25,21,2,84,7,16,0,19,16,0,20,21,2,1,21,2,84,21,0,5,19,21,2,91,21,0,6,19,21,2,4,21,2,29,7,21,0,1,21,2,97,16,19,7,16,21,2,97,21,0,3,17,7,8,16,25,21,0,1,21,2,58,16,21,2,68,0,25,17,22,0,3,11,14,15,230,22,0,4,11,14,21,1,5,21,2,3,21,0,1,7,21,2,97,21,0,4,19,21,2,94,21,2,8,21,2,96,8,3,2,21,2,0,21,2,87,21,2,7,21,2,3,21,2,152,7,8,8,21,0,3,17,25,21,0,1,21,2,74,21,2,85,7,16,21,2,25,21,1,5,7,21,0,2,17,25,21,0,2,21,2,88,21,1,4,17,25,21,1,3,21,2,91,22,1,4,13,14,21,0,1,21,2,91,0,25,17,25,21,0,1,14,21,1,6,0,18,21,1,7,17,21,2,1,0,25,21,2,91,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,97,16,21,1,3,16,0,20,21,0,1,21,2,58,16,21,2,110,16,21,2,97,16,21,2,8,21,2,29,8,7,16,25,21,0,1,21,2,87,21,2,6,21,2,92,8,21,0,2,17,21,2,84,16,22,0,3,11,14,21,0,1,21,2,87,21,2,6,21,2,80,8,21,0,2,17,22,0,4,11,14,21,0,1,15,231,21,2,7,21,2,87,21,2,91,21,0,4,21,2,110,16,21,2,91,0,25,17,21,2,92,16,19,8,21,2,6,15,232,8,21,0,2,17,22,0,5,11,14,21,0,5,21,0,3,3,2,25,21,0,2,22,0,3,11,14,21,0,1,22,0,4,11,14,15,233,21,1,7,3,2,21,2,0,21,2,88,21,2,7,21,1,6,8,8,22,0,5,11,14,0,24,21,0,5,16,25,15,234,22,0,3,11,14,0,30,21,0,3,0,25,21,2,91,21,0,1,17,17,21,2,91,0,25,17,25,21,0,2,21,2,123,21,0,1,21,2,8,21,1,13,8,7,16,25,21,0,2,21,2,88,16,21,2,4,21,2,92,7,0,25,17,22,0,3,11,14,21,0,3,21,2,90,0,24,17,0,7,0,108,17,14,21,0,1,21,2,88,16,21,2,90,21,0,3,17,0,7,0,109,17,14,21,0,1,21,2,16,16,21,2,1,21,2,5,21,0,3,21,2,126,0,24,8,8,21,2,1,21,0,3,21,2,126,21,2,85,8,3,2,21,2,0,21,0,3,21,2,85,0,24,17,8,21,2,6,0,20,21,2,58,7,8,21,1,3,9,3,2,21,2,0,21,0,2,21,2,87,16,21,2,85,0,24,17,8,15,235,3,2,21,2,0,21,2,97,21,2,5,21,2,87,8,21,2,85,0,29,19,21,2,6,21,2,82,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,11,16,0,7,0,118,17,14,21,0,1,21,2,80,21,1,8,17,22,1,8,12,14,21,0,1,21,2,81,21,1,7,17,22,1,7,12,25,15,236,21,2,3,21,0,2,7,7,25,21,2,2,21,0,1,9,25,21,0,1,21,2,110,16,21,2,135,21,1,10,17,0,21,21,0,2,7,16,25,21,0,2,21,0,1,16,25,21,0,2,21,2,25,21,0,1,7,16,25,21,2,1,21,2,149,21,2,4,21,0,2,7,7,21,0,1,19,25,21,2,1,21,2,149,21,1,4,7,21,0,2,19,15,237,21,2,149,21,0,1,7,8,25,21,2,1,21,2,149,21,2,4,21,1,4,7,7,21,0,1,19,21,2,149,21,0,2,7,9,25,21,0,1,21,2,161,21,0,2,8,21,2,167,21,0,1,8,25,21,0,1,21,2,2,21,0,4,17,25,21,0,4,21,2,2,21,0,1,17,25,21,0,2,22,0,3,11,0,9,16,22,0,4,11,14,0,24,22,0,5,11,22,0,6,11,22,0,7,11,14,0,28,22,0,8,11,14,21,0,1,0,25,0,14,21,2,7,17,0,9,0,25,17,21,3,9,0,20,0,10,21,3,7,21,2,7,8,7,8,16,21,3,8,0,18,8,21,3,6,21,1,5,8,22,0,9,11,14,21,0,9,0,24,0,25,0,26,3,4,22,0,10,11,14,0,8,15,238,3,2,0,18,21,0,3,0,15,0,29,17,17,22,0,11,11,14,15,239,22,0,12,11,14,15,240,15,241,21,0,12,3,3,21,3,0,15,242,8,22,0,13,11,14,21,0,1,0,20,21,0,1,21,3,8,15,243,8,7,16,25,21,1,6,21,1,7,0,14,21,0,1,17,21,3,9,15,244,8,16,25,0,24,21,0,1,3,2,21,3,0,21,0,2,8,25,21,0,0,0,24,3,2,25,21,0,2,22,0,3,11,14,21,0,1,21,3,49,0,17,7,16,22,0,4,11,0,18,0,24,17,21,3,23,16,22,0,5,11,14,0,30,22,0,6,11,14,21,0,4,21,3,8,21,3,49,0,18,7,8,21,3,8,21,1,5,8,22,0,7,11,14,15,245,25,21,0,1,15,246,0,20,21,0,0,7,3,2,21,3,0,21,3,10,8,16,25,21,0,1,21,1,7,16,22,0,3,22,0,4,4,2,11,14,21,0,3,22,1,7,12,14,21,0,4,25,21,0,1,21,3,10,0,9,0,25,19,21,3,9,21,3,18,8,16,22,0,1,12,14,21,0,1,0,16,16,22,0,3,11,21,3,25,0,10,7,0,25,17,22,0,4,11,14,21,0,2,0,20,0,18,21,3,7,0,24,8,7,16,22,0,5,11,14,21,0,5,0,24,21,3,35,21,3,32,8,16,22,0,6,11,14,21,0,6,0,20,21,0,2,21,3,8,0,18,8,0,18,0,25,19,7,16,22,0,7,11,14,21,3,3,21,0,5,7,0,18,21,0,6,21,3,8,0,18,8,19,21,0,4,3,2,21,3,0,0,15,21,3,7,21,0,6,21,3,23,16,8,8,22,0,8,11,14,0,24,22,0,9,11,21,0,8,16,22,0,10,11,14,21,0,4,0,19,16,0,20,21,0,1,0,17,16,21,3,8,0,18,8,15,247,3,2,21,3,0,15,248,8,7,16,0,17,21,0,3,17,25,21,0,1,21,3,49,21,3,2,0,14,21,0,1,21,0,5,16,19,21,3,9,21,0,4,8,7,21,0,1,21,3,23,16,0,19,16,17,25,21,0,1,0,17,21,3,5,21,3,3,21,2,7,7,0,18,21,0,2,19,21,1,4,21,0,0,21,3,7,21,0,2,0,8,0,25,17,8,8,8,0,17,0,16,19,21,1,3,3,2,21,3,0,21,2,7,21,3,23,16,21,3,17,21,0,2,17,8,16,25,21,0,1,3,1,3,0,21,3,27,3,2,21,3,0,21,3,2,21,3,10,9,8,21,1,6,17,22,1,6,12,25,21,0,1,21,2,7,21,1,6,8,25,21,0,4,21,0,1,21,0,2,17,25,0,24,21,3,3,21,1,3,21,0,1,7,7,16,21,2,16,16,25,0,24,21,3,3,21,0,2,21,1,3,21,0,1,8,7,16,21,2,16,16,25,21,0,1,22,2,4,12,21,3,4,0,18,7,21,2,6,17,22,2,5,12,14,0,30,22,2,3,12,25,21,1,5,22,0,3,11,14,21,0,1,21,1,6,22,1,5,13,14,21,0,3,25,21,0,1,21,3,27,21,0,1,21,3,23,16,0,9,21,0,2,17,0,19,21,3,5,0,20,0,25,7,8,16,17,25,21,0,1,0,20,0,8,7,21,0,2,0,20,21,0,4,21,3,8,0,10,8,7,16,17,25,21,0,1,0,25,21,3,8,0,14,8,0,9,0,25,19,21,3,9,21,1,5,21,0,2,7,21,3,7,0,19,8,8,21,1,7,17,21,1,5,21,0,2,0,10,21,1,7,17,7,22,1,6,13,14,0,25,22,1,7,12,14,21,0,1,21,3,23,16,25,21,0,2,0,10,22,1,7,13,14,21,0,2,25,21,0,1,14,0,25,22,1,9,12,25,21,1,3,0,9,21,1,4,21,3,23,16,17,0,19,16,0,20,0,8,21,3,7,21,1,3,8,21,3,4,0,18,7,21,1,4,19,7,16,22,0,3,11,21,3,27,22,1,10,13,14,21,0,3,21,3,25,0,10,7,21,1,7,17,0,14,21,3,7,0,25,8,0,9,0,25,19,21,3,9,15,249,8,16,14,21,0,1,0,17,16,21,3,8,0,18,8,22,0,4,11,14,21,1,9,21,3,1,21,3,9,15,250,8,21,0,1,17,14,21,1,6,0,17,21,1,10,17,0,20,21,0,4,7,16,25,21,0,1,0,19,16,0,20,0,9,21,3,7,21,0,1,8,21,3,4,0,18,7,21,1,3,19,7,16,25,21,0,1,0,19,16,0,20,0,10,21,3,7,21,0,2,8,7,16,25,21,0,1,0,25,0,9,21,1,3,17,21,3,18,21,0,2,17,21,3,9,21,3,74,21,0,0,21,3,7,21,0,2,0,8,0,25,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,21,3,92,21,0,1,17,0,19,16,0,20,21,2,6,0,3,16,7,16,21,3,27,22,2,6,13,14,21,2,7,25,21,0,1,21,3,79,21,2,7,17,0,20,21,2,6,21,3,8,0,18,8,7,16,25,21,1,6,0,20,21,0,1,21,3,85,16,7,16,25,21,0,2,21,3,87,16,21,3,85,0,24,17,0,7,0,90,17,14,21,0,2,21,3,87,16,0,19,16,21,3,85,0,24,17,21,3,84,21,0,2,17,25,21,0,2,0,20,21,0,1,21,3,8,0,18,8,7,16,25,21,0,1,21,3,88,21,0,2,17,0,21,21,3,82,7,16,21,3,25,21,3,91,7,16,22,0,3,11,14,21,0,3,21,3,110,16,0,20,21,0,2,21,3,8,0,18,8,7,16,21,3,25,21,3,84,7,16,22,0,4,11,14,21,0,3,21,3,86,21,3,7,21,1,4,8,21,3,9,21,0,2,21,0,1,3,2,21,3,8,21,3,49,0,18,7,8,21,3,5,15,251,8,8,16,14,21,0,4,25,21,1,4,21,3,91,21,3,7,21,0,1,8,21,3,6,21,2,5,8,21,1,3,17,21,3,88,21,3,7,0,24,8,21,3,9,21,0,1,21,3,91,0,25,17,21,3,5,21,1,5,8,8,16,25,21,0,1,0,25,21,3,8,21,3,86,8,21,3,9,15,252,8,21,0,2,17,25,21,0,2,21,3,128,16,21,3,111,16,22,0,3,11,14,21,0,1,21,3,127,21,0,2,21,3,29,21,0,3,17,17,21,3,4,21,3,92,7,0,25,17,21,3,81,0,24,17,21,3,4,21,3,29,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,126,21,3,57,8,21,0,2,21,3,29,21,0,4,17,17,21,2,2,21,3,9,21,3,84,21,3,7,21,3,92,21,3,7,21,0,4,8,8,21,3,91,21,3,2,19,8,21,0,2,21,3,87,16,17,25,21,3,2,21,0,1,21,0,4,19,25,21,0,1,21,0,5,16,21,0,4,21,0,2,17,25,21,0,1,21,1,8,0,9,0,25,17,21,4,9,21,1,9,0,9,0,25,19,21,4,9,15,253,8,8,0,25,0,9,21,0,1,17,17,25,21,0,2,0,8,21,1,3,17,22,1,4,12,14,21,0,1,0,8,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,0,8,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,0,15,21,3,6,17,22,1,8,12,14,21,1,6,21,1,11,16,14,21,1,7,21,1,13,21,1,4,17,25,21,0,2,0,8,0,25,17,22,1,4,12,0,14,21,1,6,17,0,10,0,26,17,0,8,22,1,8,13,14,21,0,2,25,21,0,1,0,8,0,25,17,22,1,7,12,0,14,21,1,5,17,0,8,22,1,8,13,14,21,0,1,25,21,0,1,21,1,10,21,4,0,21,1,8,8,21,0,2,17,25,21,0,1,0,18,21,1,7,21,1,13,21,1,4,17,17,25,0,25,0,8,21,0,1,17,21,2,4,16,22,2,6,12,21,2,5,16,22,2,7,12,14,21,2,6,25,0,25,0,8,22,1,6,13,14,21,1,6,21,1,7,21,4,7,21,4,3,21,0,0,7,8,21,4,3,21,1,3,7,3,2,21,4,0,0,15,21,4,7,21,1,5,8,8,16,22,0,3,11,14,0,24,21,0,3,16,25,21,0,1,14,0,25,0,8,22,2,6,13,25,21,0,1,14,21,1,7,0,18,21,1,9,17,22,0,3,11,14,0,24,15,254,16,22,1,10,12,14,21,0,3,25,21,0,1,0,14,21,1,10,17,25,21,0,1,0,19,16,21,2,5,21,0,1,7,22,2,6,13,25,21,4,3,21,0,2,0,3,16,7,21,1,4,3,2,21,4,0,0,15,21,4,7,0,24,8,8,22,1,4,12,25,21,0,1,21,4,25,21,4,92,7,16,21,4,84,16,22,2,3,12,14,21,0,1,21,4,25,21,4,80,7,16,21,4,84,21,1,4,17,22,1,4,12,25,0,26,21,4,76,21,0,2,17,21,4,80,16,22,0,3,11,21,4,91,21,0,1,17,22,0,4,11,21,3,2,16,22,0,5,11,14,21,0,1,21,0,4,3,2,0,18,21,0,5,17,21,2,3,21,0,2,21,4,79,0,26,17,21,4,84,21,0,5,17,21,4,91,21,0,3,17,17,25,21,0,1,14,0,26,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25,21,2,9,0,8,0,25,17,22,2,9,12,21,2,8,16,21,5,1,0,14,21,2,10,19,21,5,9,15,255,21,5,5,21,0,0,8,8,16,25,21,0,1,14,21,3,7,0,18,21,3,9,17,21,6,55,21,2,3,17,0,7,0,51,17,25]
+ [0,2,14,15,1,22,0,0,11,14,15,2,22,0,1,11,14,15,3,0,23,15,4,8,22,0,2,11,14,15,5,22,0,3,11,14,15,6,22,0,4,11,14,15,7,22,0,5,11,14,15,8,22,0,6,11,14,15,9,22,0,7,11,14,15,10,22,0,8,11,14,15,11,22,0,9,11,14,0,0,0,14,0,24,19,22,0,10,11,14,0,24,0,14,21,0,7,0,13,8,3,2,21,0,0,0,0,0,14,0,25,19,8,22,0,11,11,14,0,24,0,14,21,0,7,0,13,8,0,10,0,15,21,0,7,0,24,8,19,3,2,21,0,0,0,0,0,14,0,25,19,8,22,0,12,11,14,15,12,0,17,3,2,21,0,0,21,0,10,8,22,0,13,11,14,15,13,0,23,15,14,8,22,0,14,11,14,15,15,22,0,15,11,14,21,0,10,0,9,0,25,19,21,0,9,21,0,15,8,22,0,16,11,14,21,0,4,0,15,7,22,0,17,11,14,21,0,17,0,9,0,25,19,0,23,21,0,15,8,22,0,18,11,14,0,15,0,9,0,25,19,22,0,19,11,14,15,16,0,18,21,0,19,19,0,23,0,13,8,22,0,20,11,14,15,17,0,18,21,0,18,19,0,23,0,9,21,0,5,21,0,20,21,0,5,0,9,8,8,8,22,0,21,11,14,0,9,21,0,1,3,2,21,0,0,0,15,21,0,7,0,24,8,8,22,0,22,11,14,0,25,0,16,0,18,0,24,19,3,2,21,0,0,0,14,21,0,18,0,24,19,8,22,0,23,11,14,15,18,22,0,24,11,14,21,0,24,22,0,25,11,14,0,16,21,0,8,15,19,8,22,0,26,11,14,15,20,22,0,27,11,14,21,0,1,0,22,15,21,15,22,3,2,21,0,0,21,0,1,21,0,5,0,14,8,0,14,0,25,19,8,8,22,0,28,11,14,21,0,28,22,0,29,11,14,15,23,22,0,30,11,14,15,24,22,0,31,11,14,0,15,0,9,21,0,17,19,22,0,32,11,14,0,25,0,17,0,18,0,24,19,21,0,8,0,15,0,10,0,26,19,0,9,0,25,19,15,25,3,2,21,0,0,21,0,1,21,0,5,21,0,10,8,8,8,3,2,21,0,0,21,0,1,21,0,5,0,16,8,21,0,25,0,10,7,0,25,19,21,0,18,0,24,19,8,22,0,33,11,14,21,0,32,21,0,33,21,0,4,21,0,33,7,0,9,9,3,2,21,0,0,21,0,2,21,0,5,21,0,10,8,8,15,26,3,3,21,0,0,21,0,10,21,0,6,0,8,8,8,22,0,34,11,14,15,27,22,0,35,11,14,15,28,22,0,36,11,14,21,0,16,21,0,1,0,22,15,29,8,3,2,21,0,0,0,14,21,0,18,0,24,19,8,22,0,37,11,14,15,30,21,0,9,21,0,1,0,22,15,31,8,8,22,0,38,11,14,15,32,22,0,39,11,14,15,33,22,0,40,11,14,15,34,22,0,41,11,14,15,35,22,0,42,11,14,15,36,22,0,43,11,14,15,37,22,0,44,11,14,15,38,22,0,45,11,14,21,0,13,0,3,0,18,21,0,7,0,24,8,3,2,21,0,0,21,0,23,21,0,18,0,24,19,8,9,22,0,46,11,14,15,39,22,0,47,11,14,15,40,22,0,48,11,14,15,41,22,0,49,11,14,15,42,22,0,50,11,14,0,24,0,14,21,0,7,21,0,3,21,0,50,7,8,3,2,21,0,0,0,0,0,14,0,28,19,8,22,0,51,11,14,15,43,22,0,52,11,14,21,0,1,21,0,1,21,0,1,21,0,25,15,44,7,9,15,45,15,46,15,47,3,6,21,0,0,21,0,2,8,22,0,53,11,14,15,48,22,0,54,11,14,21,0,10,21,0,6,0,14,8,0,24,3,2,21,0,1,21,0,5,21,0,10,8,0,14,3,2,0,14,21,0,6,0,14,8,0,24,3,2,0,16,21,0,6,21,0,49,0,14,7,8,21,0,25,0,10,7,0,25,19,0,24,3,2,15,49,3,5,21,0,25,15,50,7,16,22,0,55,11,14,0,24,15,51,3,2,21,0,0,21,0,10,8,22,0,56,11,14,21,0,55,0,23,21,0,56,8,22,0,57,11,14,21,0,55,0,9,0,25,19,0,23,3,0,0,16,3,2,21,0,0,21,0,10,8,8,22,0,58,11,14,21,0,57,21,0,5,0,7,8,21,0,2,21,0,1,19,22,0,59,11,14,0,17,21,0,5,0,3,0,22,21,0,1,8,21,0,25,21,0,59,0,22,21,0,1,8,7,3,2,21,0,0,21,0,23,21,0,18,0,24,19,8,8,22,0,60,11,14,15,52,22,0,61,11,14,21,0,10,21,0,9,21,0,27,21,0,61,15,53,8,8,22,0,62,11,14,15,54,22,0,63,11,14,15,55,22,0,64,11,14,21,0,10,0,7,0,58,19,21,0,2,15,56,21,0,61,21,0,62,21,0,64,21,0,63,3,2,21,0,0,0,20,0,14,0,14,0,25,19,7,21,0,25,0,10,7,0,25,19,8,21,0,64,3,3,21,0,0,0,14,21,0,20,0,26,19,8,8,19,22,0,65,11,14,15,57,22,0,66,11,14,21,0,66,0,63,21,0,22,21,0,8,0,14,8,0,9,0,25,19,15,58,3,3,7,22,0,67,11,14,21,0,66,0,64,0,14,21,0,7,0,24,8,0,9,0,25,19,15,59,3,3,7,22,0,68,11,14,15,60,22,0,69,11,14,15,61,22,0,70,11,14,15,62,22,0,71,11,14,15,63,22,0,72,11,14,15,64,22,0,73,11,14,15,65,22,0,74,11,14,15,66,22,0,75,11,14,21,0,31,0,11,7,22,0,76,11,14,21,0,31,0,12,7,22,0,77,11,14,21,0,4,21,0,76,21,0,8,21,0,77,8,7,0,23,0,26,21,0,76,16,21,0,8,21,0,77,8,8,22,0,78,11,14,21,0,31,15,67,0,23,21,0,22,8,7,22,0,79,11,14,21,0,31,15,68,0,23,21,0,20,8,7,22,0,80,11,14,21,0,31,15,69,0,23,0,9,21,0,5,21,0,80,21,0,5,0,9,8,8,8,7,22,0,81,11,14,21,0,31,0,10,7,0,23,21,0,43,0,24,7,8,22,0,82,11,14,21,0,31,0,10,0,9,0,8,19,7,0,23,21,0,43,0,25,7,8,22,0,83,11,14,21,0,31,0,10,0,23,21,0,19,0,9,21,0,18,19,21,0,7,0,24,8,8,7,22,0,84,11,14,21,0,31,21,0,17,0,9,0,25,19,7,0,23,21,0,15,8,22,0,85,11,14,21,0,31,0,15,0,9,0,25,19,7,0,23,21,0,62,8,22,0,86,11,14,21,0,31,0,14,0,9,0,25,19,7,0,23,21,0,23,8,22,0,87,11,14,21,0,31,0,14,7,0,23,0,14,8,22,0,88,11,14,21,0,31,21,0,17,7,0,23,21,0,3,0,24,7,0,7,0,76,19,8,22,0,89,11,14,21,0,31,0,15,7,0,23,21,0,3,0,24,7,0,7,0,77,19,8,22,0,90,11,14,21,0,31,0,8,7,22,0,91,11,14,21,0,31,0,9,7,22,0,92,11,14,21,0,92,21,0,91,0,25,19,22,0,93,11,14,21,0,91,0,24,3,2,21,0,92,0,24,3,2,21,0,84,0,25,3,2,21,0,76,0,25,3,2,21,0,77,0,25,3,2,21,0,93,0,25,3,2,21,0,80,0,33,3,2,21,0,81,0,32,3,2,21,0,83,0,24,3,2,21,0,82,0,25,3,2,21,0,87,0,24,3,2,21,0,88,0,25,3,2,21,0,86,0,24,3,2,21,0,89,0,25,3,2,21,0,3,0,24,7,0,7,0,78,19,3,15,21,0,25,15,70,7,16,22,0,94,11,14,21,0,2,21,0,88,21,0,88,21,0,87,21,0,57,21,0,58,3,4,19,21,0,25,21,0,91,7,9,21,0,9,15,71,8,22,0,95,11,14,15,72,22,0,96,11,14,0,17,0,23,21,0,13,8,22,0,97,11,14,15,73,22,0,98,11,14,15,74,22,0,99,11,14,15,75,22,0,100,11,14,15,76,22,0,101,11,14,15,77,22,0,102,11,14,15,78,22,0,103,11,14,21,0,103,22,0,104,11,14,21,0,59,0,22,21,0,97,21,0,6,21,0,27,8,15,79,3,2,21,0,0,21,0,88,21,0,85,0,25,19,21,0,6,21,0,83,8,8,8,22,0,105,11,14,21,0,29,21,0,7,21,0,36,8,22,0,106,11,14,21,0,1,0,22,21,0,87,21,0,88,0,24,19,21,0,92,0,25,19,21,0,75,15,80,15,81,3,2,21,0,0,21,0,2,21,0,5,21,0,88,8,21,0,85,0,24,19,8,8,8,22,0,107,11,14,21,0,67,0,23,21,0,41,8,22,0,108,11,14,21,0,68,0,23,21,0,42,8,22,0,109,11,14,21,0,73,0,23,21,0,98,8,22,0,110,11,14,0,24,21,0,75,21,0,40,8,0,23,21,0,39,8,22,0,111,11,14,21,0,107,0,23,21,0,36,8,22,0,112,11,14,21,0,59,0,23,21,0,1,8,0,22,21,0,70,0,23,21,0,70,21,0,7,21,0,72,8,8,8,22,0,113,11,14,21,0,59,0,23,21,0,1,8,0,22,21,0,71,0,23,21,0,71,21,0,7,21,0,72,8,8,8,22,0,114,11,14,15,82,22,0,115,11,14,15,83,22,0,116,11,14,15,84,22,0,117,11,14,15,85,22,0,118,11,14,21,0,118,15,86,3,2,21,0,0,21,0,2,21,0,5,21,0,97,21,0,5,0,20,21,0,10,7,8,8,21,0,25,21,0,83,7,9,8,22,0,119,11,14,21,0,119,21,0,7,21,0,97,21,0,1,3,2,21,0,0,21,0,10,8,8,22,0,120,11,14,15,87,22,0,121,11,14,15,88,22,0,122,11,14,15,89,22,0,123,11,14,15,90,22,0,124,11,14,21,0,101,22,0,125,11,14,21,0,102,22,0,126,11,14,21,0,124,21,0,34,7,0,23,0,24,21,0,35,21,0,34,8,8,22,0,127,11,14,21,0,124,21,0,4,21,0,34,7,7,0,23,0,25,21,0,35,21,0,4,21,0,34,7,8,8,22,0,128,11,14,15,91,22,0,129,11,14,0,6,21,0,7,21,0,49,0,25,7,8,22,0,130,11,14,15,92,22,0,131,11,14,21,0,131,21,0,1,21,0,5,0,21,21,0,91,7,8,21,0,4,21,0,92,7,0,25,19,21,0,4,21,0,29,7,21,0,4,21,0,112,21,0,5,21,0,127,21,0,5,21,0,130,8,8,7,19,7,22,0,132,11,14,15,93,22,0,133,11,14,21,0,59,0,23,21,0,1,8,0,22,21,0,14,21,0,5,21,0,86,8,8,22,0,134,11,14,21,0,105,0,23,21,0,65,8,22,0,135,11,14,21,0,117,0,23,21,0,116,8,22,0,136,11,14,21,0,129,0,25,7,0,23,21,0,132,8,22,0,137,11,14,21,0,4,21,0,129,0,24,7,7,0,23,21,0,131,21,0,1,7,8,22,0,138,11,14,15,94,22,0,139,11,14,21,0,1,0,22,15,95,8,22,0,140,11,14,15,96,22,0,141,11,14,15,97,22,0,142,11,14,21,0,141,0,23,21,0,37,8,22,0,143,11,14,21,0,127,21,0,5,21,0,127,8,21,0,29,21,0,92,21,0,1,19,21,0,4,21,0,137,7,19,0,3,0,24,19,22,0,144,11,14,15,98,0,3,0,24,19,22,0,145,11,14,21,0,1,0,22,0,25,21,0,75,21,0,45,8,21,0,7,21,0,16,8,0,23,21,0,44,8,8,22,0,146,11,14,21,0,120,0,23,21,0,46,8,22,0,147,11,14,15,99,22,0,148,11,14,15,100,22,0,149,11,14,15,101,22,0,150,11,14,21,0,85,21,0,137,21,0,5,21,0,147,8,21,0,5,21,0,80,21,0,111,21,0,108,3,4,19,22,0,151,11,14,21,0,135,22,0,152,11,14,21,0,150,22,0,153,11,14,21,0,96,0,23,21,0,13,8,22,0,154,11,14,21,0,52,22,0,155,11,14,21,0,145,0,23,21,0,144,8,22,0,156,11,14,21,0,133,0,23,21,0,112,21,0,7,21,0,138,8,8,22,0,157,11,14,0,7,21,0,7,0,119,8,22,0,158,11,14,0,7,21,0,7,0,120,8,22,0,159,11,14,21,0,3,0,24,7,0,7,0,121,19,22,0,160,11,14,15,102,22,0,161,11,14,15,103,22,0,162,11,14,15,104,22,0,163,11,14,15,105,22,0,164,11,14,21,0,91,21,0,4,21,0,92,7,0,23,21,0,91,8,21,0,92,21,0,92,21,0,84,21,0,4,21,0,76,7,0,23,21,0,1,8,21,0,76,21,0,76,21,0,77,21,0,31,0,4,7,21,0,78,21,0,4,21,0,77,7,0,23,21,0,4,21,0,84,7,8,21,0,82,21,0,4,21,0,76,7,0,23,21,0,82,21,0,161,21,0,1,8,8,21,0,83,21,0,2,21,0,92,0,25,19,21,0,76,21,0,4,21,0,92,7,19,0,23,21,0,83,21,0,161,21,0,1,8,8,21,0,93,21,0,93,21,0,85,0,24,21,0,5,21,0,158,8,0,23,15,106,8,21,0,1,21,0,1,21,0,2,21,0,57,21,0,5,21,0,159,8,21,0,2,21,0,1,19,0,23,21,0,1,8,21,0,135,15,107,0,23,0,24,21,0,5,21,0,158,8,8,21,0,134,15,108,0,23,15,109,8,21,0,108,0,24,21,0,5,21,0,158,8,0,23,21,0,108,21,0,161,21,0,147,21,0,7,0,30,8,8,8,21,0,109,0,24,21,0,5,21,0,158,8,0,23,21,0,109,21,0,161,21,0,147,8,8,21,0,110,0,24,21,0,5,21,0,158,8,0,23,21,0,110,21,0,161,21,0,58,8,8,21,0,111,21,0,111,21,0,7,21,0,92,8,0,23,21,0,111,8,21,0,143,21,0,142,0,23,21,0,38,8,21,0,112,0,24,21,0,5,21,0,158,8,0,23,15,110,8,21,0,136,21,0,163,0,23,21,0,162,8,3,42,21,0,164,21,0,160,8,22,0,165,11,14,15,111,22,0,166,11,14,15,112,22,0,167,11,14,15,113,21,0,6,15,114,8,22,0,168,11,14,15,115,21,0,4,21,0,91,21,0,4,21,0,92,7,0,23,0,26,21,0,8,21,0,76,8,8,21,0,92,21,0,91,0,23,0,24,21,0,5,21,0,158,8,8,21,0,84,21,0,4,21,0,76,7,0,23,21,0,78,8,21,0,76,21,0,84,0,23,0,24,21,0,5,21,0,158,8,8,21,0,77,21,0,78,0,23,0,24,21,0,5,21,0,158,8,8,21,0,78,0,4,21,0,76,9,0,23,0,24,21,0,5,21,0,158,8,8,21,0,82,21,0,4,21,0,76,7,0,23,21,0,78,8,21,0,83,21,0,2,21,0,92,0,25,19,21,0,76,21,0,4,21,0,92,7,19,0,23,21,0,93,21,0,5,21,0,78,8,21,0,93,9,8,21,0,93,21,0,3,0,25,7,21,0,92,21,0,91,19,0,23,0,24,21,0,5,21,0,158,8,8,3,18,21,0,164,21,0,160,8,21,0,49,15,116,21,0,166,15,117,21,0,74,15,118,0,21,15,119,3,10,21,0,164,21,0,3,21,0,160,7,8,7,22,0,169,11,14,0,25,0,1,21,0,146,0,24,0,30,3,2,19,21,0,57,0,34,21,0,3,3,2,19,3,2,21,0,148,0,0,21,0,90,0,28,19,8,22,0,170,11,14,15,120,21,0,167,15,121,21,0,5,21,0,168,21,0,6,15,122,21,0,155,15,123,21,0,153,21,0,3,0,24,21,0,5,21,0,158,8,7,15,124,15,125,3,2,21,0,148,21,0,90,21,0,7,0,24,8,8,3,2,21,0,148,21,0,1,21,0,5,21,0,11,8,8,0,23,15,126,21,0,7,15,127,15,128,21,0,1,3,2,21,0,148,21,0,2,8,21,0,2,21,0,5,21,0,170,8,19,21,0,8,15,129,3,16,21,0,164,21,0,3,21,0,160,7,8,7,22,0,171,11,14,15,130,22,0,172,11,14,0,1,21,0,109,21,0,7,0,25,8,21,0,1,21,0,147,21,0,5,21,0,165,8,9,21,0,3,21,0,3,0,24,7,0,7,0,122,19,7,21,0,1,21,0,25,21,0,168,7,9,21,0,172,21,0,169,21,0,171,3,6,21,0,148,21,0,2,8,21,0,147,19,9,22,0,173,11,14,15,131,21,0,173,21,0,3,0,24,7,0,7,0,123,19,3,3,21,0,112,0,28,0,25,0,26,3,3,17,21,0,148,0,0,8,22,0,174,11,14,15,132,22,0,175,11,14,21,0,1,21,0,2,21,0,4,21,0,5,21,0,6,21,0,7,21,0,8,0,23,21,0,148,3,9,21,0,88,21,0,87,21,0,58,3,3,21,0,85,21,0,134,21,0,110,21,0,112,21,0,113,21,0,114,21,0,136,3,5,21,0,154,21,0,108,21,0,109,21,0,111,21,0,143,21,0,146,21,0,147,3,7,3,6,21,0,49,21,0,154,7,16,15,133,16,22,0,176,11,14,21,0,91,21,0,92,21,0,84,21,0,76,21,0,77,21,0,78,21,0,80,21,0,81,21,0,79,21,0,93,21,0,82,21,0,83,21,0,85,21,0,86,21,0,87,21,0,88,21,0,90,21,0,89,21,0,57,21,0,58,21,0,2,21,0,1,21,0,154,21,0,135,21,0,134,21,0,108,21,0,109,21,0,110,21,0,114,21,0,113,21,0,111,21,0,143,21,0,112,21,0,127,21,0,128,21,0,146,21,0,147,21,0,137,21,0,156,21,0,138,21,0,157,21,0,136,0,7,21,0,3,21,0,4,21,0,74,21,0,49,21,0,166,21,0,175,21,0,25,21,0,104,0,21,21,0,5,21,0,6,21,0,7,21,0,8,21,0,155,0,23,21,0,148,21,0,126,21,0,125,21,0,153,3,62,25,21,0,1,15,134,21,0,5,0,18,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,25,21,0,2,25,21,0,1,25,21,0,1,14,21,0,4,25,21,0,1,21,1,2,21,0,2,17,21,0,4,21,0,1,17,25,21,0,1,21,0,5,21,0,2,17,21,0,4,16,25,21,0,1,21,0,5,16,21,0,4,21,0,2,21,0,5,16,17,25,21,0,1,21,0,5,21,0,1,21,1,2,21,0,2,17,21,0,4,16,17,25,21,0,1,21,0,5,16,21,0,4,21,0,1,21,1,2,21,0,2,17,17,25,21,0,1,15,135,21,1,1,21,0,4,3,2,0,18,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,0,3,21,0,1,17,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,3,1,0,17,3,0,17,0,3,21,0,1,17,25,21,0,2,21,0,1,3,2,25,21,0,2,21,0,1,3,2,25,21,0,1,0,14,16,0,14,0,25,17,0,7,0,36,17,14,21,0,1,22,0,5,11,21,1,23,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,2,0,23,15,136,15,137,3,2,21,1,0,21,0,6,21,1,18,0,24,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,0,19,16,0,20,0,9,21,1,7,0,25,0,9,21,0,6,17,8,7,16,0,20,15,138,7,16,14,21,0,8,25,21,0,2,0,9,21,0,1,21,1,23,16,17,0,19,16,0,20,21,1,3,21,0,1,7,0,18,0,8,21,1,7,21,0,2,8,19,7,16,25,21,0,2,21,1,23,16,22,0,3,11,14,21,0,1,21,1,23,16,0,8,21,0,3,17,0,19,16,0,20,21,0,2,21,1,8,0,18,8,21,1,4,21,0,1,7,0,18,21,0,3,21,1,8,0,9,8,19,3,2,21,1,0,0,15,21,1,7,21,0,3,8,8,7,16,25,21,0,1,21,1,26,0,25,17,22,0,3,11,21,1,25,0,10,7,0,25,17,22,0,4,11,14,21,0,4,0,19,16,0,17,21,0,3,17,0,20,0,8,21,1,7,0,10,21,1,7,21,0,4,8,8,21,1,4,0,18,7,21,0,1,0,17,16,19,7,21,0,2,17,25,21,0,2,0,20,21,0,1,21,1,8,0,18,8,7,16,25,15,139,22,0,2,11,14,15,140,22,0,3,11,14,21,0,3,21,0,1,7,21,1,4,21,0,3,21,1,4,21,0,1,7,7,7,3,2,21,1,0,0,14,21,1,6,21,1,19,8,8,21,0,2,21,0,1,7,3,2,21,1,0,0,14,21,1,6,0,14,8,8,25,15,141,21,0,1,7,22,0,2,11,14,21,0,1,21,0,2,0,22,15,142,15,143,3,2,21,1,0,21,1,10,21,1,6,21,1,19,8,8,0,23,0,20,21,0,2,7,8,8,21,0,2,0,22,21,1,30,21,0,2,7,8,3,3,21,1,0,21,1,10,21,1,6,0,8,8,8,25,21,0,1,21,1,33,21,0,2,17,25,21,0,1,0,16,21,1,6,21,1,121,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,25,21,1,122,21,0,1,0,17,16,21,1,8,0,18,8,21,1,8,21,1,34,21,1,7,21,0,2,0,17,16,21,1,8,0,18,8,8,8,7,7,16,22,0,4,11,14,0,24,21,1,4,21,0,4,7,16,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,39,17,14,21,0,1,21,1,23,16,22,0,6,11,14,21,0,1,21,1,26,0,25,17,21,1,25,0,10,7,0,25,17,22,0,7,11,14,21,0,1,0,17,16,22,0,8,11,14,0,24,22,0,9,11,22,0,10,11,14,21,0,8,0,24,0,20,21,1,11,7,21,1,25,0,10,7,0,25,19,3,2,21,1,0,21,0,6,21,1,18,0,27,17,0,10,0,25,0,14,21,0,7,17,17,8,16,21,1,1,21,1,9,21,0,1,21,1,8,15,144,8,8,16,0,9,0,25,17,22,0,11,11,14,21,0,1,0,20,21,0,10,21,1,8,0,9,8,0,9,21,1,7,21,0,9,8,3,2,0,18,21,0,5,17,7,0,6,21,1,7,0,5,8,9,15,145,21,0,4,7,3,2,21,1,0,21,0,11,8,16,0,3,0,24,17,25,21,0,1,0,14,16,0,14,0,25,17,0,7,0,40,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,0,3,21,1,18,0,24,17,21,1,9,15,146,8,16,0,3,0,24,17,25,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,1,26,0,25,17,22,0,4,11,21,1,25,0,10,7,0,25,17,22,0,5,11,14,21,0,3,0,19,16,0,20,21,1,3,21,0,1,0,17,16,7,0,18,0,10,21,1,7,21,0,5,8,21,1,8,0,8,8,19,7,21,0,5,0,19,16,0,17,21,0,4,17,17,25,21,0,1,21,1,10,16,21,1,159,16,14,21,0,1,0,14,16,21,1,18,0,24,17,25,21,0,1,0,14,16,21,1,4,0,9,7,0,25,17,22,0,3,11,14,21,0,1,0,16,16,22,0,4,11,14,21,0,4,0,18,21,0,3,17,22,0,5,11,14,21,0,3,0,19,16,0,20,21,0,4,21,1,8,0,18,8,7,16,22,0,6,11,14,21,0,6,21,1,25,0,10,7,0,25,17,0,19,16,0,17,21,0,6,17,0,20,21,1,3,21,0,1,0,17,16,7,0,18,0,10,21,1,7,21,0,5,8,21,1,8,0,8,8,19,7,21,0,5,0,19,16,17,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,42,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,1,29,21,0,3,0,19,16,0,20,0,9,21,1,7,0,25,0,9,21,0,3,17,8,7,16,17,25,21,0,2,21,1,11,16,0,7,0,43,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,3,0,11,21,0,2,17,21,1,20,16,0,10,21,0,3,17,0,9,22,0,2,13,14,21,0,1,21,1,29,21,0,3,0,19,16,0,20,21,1,1,0,15,21,0,2,0,9,21,0,3,17,19,0,10,21,0,3,19,0,9,21,1,1,19,0,8,21,0,2,19,7,16,17,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,44,17,14,21,0,1,21,1,23,16,0,8,0,25,17,0,19,16,0,20,21,0,1,21,1,8,21,1,29,21,1,7,0,19,8,8,7,16,0,3,21,1,7,0,18,21,1,7,0,24,8,8,16,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,45,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,3,0,8,0,25,17,0,19,16,0,20,21,0,1,21,1,8,21,1,29,21,1,7,15,147,8,8,7,16,0,3,21,1,7,0,18,21,1,7,21,0,3,8,8,16,25,21,1,29,21,1,7,21,0,1,21,1,35,21,1,34,21,1,4,21,1,34,7,3,2,0,18,21,0,1,17,8,8,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,46,17,14,21,0,1,21,1,23,16,21,1,18,0,24,17,0,7,0,47,17,14,21,0,1,21,1,28,0,24,21,1,18,16,17,25,21,0,2,21,1,10,16,0,7,0,48,17,14,21,0,2,0,20,21,1,11,7,16,0,17,16,21,1,25,0,10,7,0,25,17,0,7,0,49,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,2,0,20,21,1,19,21,1,7,21,0,3,8,0,10,0,15,21,1,7,21,0,3,0,9,16,8,19,7,16,0,17,16,21,1,25,0,10,7,0,25,17,0,7,0,50,17,14,21,0,1,21,1,29,21,1,7,0,20,21,1,1,21,1,19,0,24,19,0,10,21,0,3,19,0,8,21,1,1,19,7,8,21,0,2,17,25,21,0,1,0,1,16,22,0,3,11,14,21,0,3,0,18,0,24,17,0,24,21,1,8,0,15,8,21,0,3,21,1,5,21,1,23,8,21,1,4,0,9,7,0,25,19,0,19,9,21,1,25,0,10,21,1,7,0,8,21,1,7,0,25,8,21,1,4,0,18,7,21,0,3,19,21,0,0,9,8,7,0,25,19,3,2,21,1,0,0,15,21,1,7,0,26,8,8,16,25,21,0,1,15,148,21,1,2,21,1,47,9,21,1,9,15,149,8,3,2,21,1,0,21,1,2,21,1,5,0,0,8,0,15,0,28,19,8,21,0,2,17,25,21,0,1,21,1,16,21,1,6,21,0,4,21,1,48,21,1,30,21,0,4,7,0,23,0,20,21,0,4,7,8,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,0,5,21,1,6,21,0,4,8,21,0,2,17,22,0,6,11,14,21,0,1,21,1,54,21,0,5,7,16,22,0,7,22,0,8,4,2,11,14,21,1,1,21,1,5,21,1,51,8,0,9,0,25,19,21,1,9,15,150,8,22,0,9,11,14,21,1,1,0,22,15,151,8,22,0,10,11,14,21,0,8,21,0,9,21,0,6,17,21,1,3,21,0,1,7,21,1,8,21,0,10,8,21,1,3,21,0,5,7,21,1,174,9,15,152,9,3,2,21,1,0,21,1,51,8,16,25,21,0,1,21,0,2,9,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,21,0,5,21,0,4,21,0,3,19,25,21,0,1,22,0,3,22,0,4,4,2,11,14,21,0,4,21,0,3,7,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,21,0,5,21,0,4,21,0,3,8,25,21,1,3,21,1,50,7,22,0,5,11,14,21,1,39,21,1,25,21,1,1,21,1,10,9,21,1,9,0,17,21,1,8,0,18,8,8,7,21,0,1,19,0,24,0,16,21,1,1,21,1,25,0,10,7,0,25,19,0,19,9,21,1,8,0,17,8,9,3,2,21,1,0,21,1,10,8,9,22,0,6,11,14,15,153,22,0,7,11,14,0,1,0,24,0,18,21,1,7,0,26,8,0,14,21,1,3,21,0,7,7,19,3,2,21,1,0,0,18,21,1,7,0,24,8,0,14,0,31,19,8,9,22,0,8,11,14,15,154,22,0,9,11,14,21,0,9,0,25,7,22,0,10,11,14,21,0,9,0,24,7,22,0,11,11,14,15,155,22,0,12,11,14,15,156,22,0,13,11,14,15,157,22,0,14,11,14,0,0,21,1,17,0,28,19,21,1,9,21,0,14,21,1,51,7,8,22,0,15,11,14,21,0,14,21,0,8,7,22,0,16,11,14,21,1,3,21,1,1,21,0,11,21,1,7,0,25,8,21,0,12,9,21,0,10,21,1,7,0,24,8,21,0,12,9,21,0,10,21,1,7,0,25,8,21,0,12,9,21,0,10,21,1,7,0,25,8,21,0,13,9,21,0,10,21,1,7,0,25,8,21,0,16,15,158,15,159,3,3,21,1,0,21,1,3,0,28,7,0,9,0,0,19,8,3,7,7,0,18,21,1,176,19,15,160,21,1,1,19,22,0,17,11,14,0,1,21,1,68,21,1,7,0,25,8,21,1,1,0,18,0,24,19,21,0,17,9,21,0,15,9,21,1,3,21,0,5,7,15,161,21,1,8,21,1,53,8,21,1,1,0,18,0,24,19,21,0,15,9,3,4,21,1,0,21,1,2,21,1,5,0,28,21,1,1,0,26,3,2,21,1,0,0,15,21,1,7,0,26,8,8,3,2,21,1,0,0,15,21,1,7,0,24,8,8,8,8,0,18,21,1,7,0,24,8,19,9,22,0,18,11,14,21,0,4,21,0,18,16,0,24,21,0,7,0,30,8,3,2,21,1,25,15,162,7,16,0,24,21,1,50,3,2,0,1,21,1,29,0,25,0,28,3,2,19,3,2,21,1,0,21,0,8,8,16,25,21,0,1,21,1,49,21,1,55,7,21,0,2,17,0,17,16,21,1,25,0,10,7,0,25,17,25,21,0,2,0,18,0,25,17,21,0,1,3,2,21,1,0,21,0,2,0,18,0,24,17,8,25,21,0,1,0,17,16,0,20,21,1,56,7,16,21,1,25,0,9,0,10,0,15,19,0,9,21,1,2,19,7,0,24,17,0,8,0,25,17,25,0,3,21,1,8,21,1,1,0,22,21,1,3,3,0,7,0,17,21,1,58,21,1,6,21,0,2,8,19,8,8,21,1,60,21,1,1,0,22,21,1,2,8,21,0,1,19,3,2,21,1,0,0,17,21,1,5,21,1,23,8,21,1,18,0,24,19,8,25,21,0,1,0,17,16,0,18,0,24,17,21,1,58,16,22,0,3,11,14,21,0,1,0,17,16,0,20,21,1,58,21,1,57,21,0,3,19,7,16,21,1,25,0,10,7,0,25,17,0,7,0,52,17,14,21,0,3,21,1,25,0,10,7,0,25,17,0,19,16,0,17,21,0,3,17,0,20,21,1,4,21,1,13,21,1,8,0,18,8,7,7,21,0,1,17,25,0,30,22,0,3,11,22,0,4,11,14,3,0,22,0,5,11,14,21,0,1,22,0,6,11,14,21,0,1,0,20,21,1,23,7,16,21,1,36,16,0,20,15,163,7,16,25,21,0,1,0,17,16,22,0,3,11,21,1,23,16,22,0,4,11,14,21,0,3,0,20,21,1,58,7,16,22,0,5,11,14,21,0,5,0,18,0,24,17,21,1,23,16,22,0,6,11,14,21,0,1,0,14,16,22,0,7,11,14,21,0,5,0,20,21,1,23,0,14,21,0,6,19,7,16,21,1,25,0,10,7,0,25,17,0,7,0,53,17,14,21,0,7,21,1,17,21,0,6,17,0,7,0,54,17,14,15,164,22,0,8,11,14,21,0,1,21,1,58,16,22,0,9,11,14,0,25,22,0,10,11,14,0,24,21,1,18,16,22,0,11,11,22,0,12,11,14,21,0,7,0,19,16,21,1,49,15,165,7,21,0,9,21,1,39,16,21,0,8,0,10,7,0,25,17,21,1,39,16,17,14,21,1,49,15,166,21,0,3,0,20,0,17,7,16,7,7,22,0,13,11,14,21,0,11,21,0,13,15,167,3,2,21,1,0,21,0,6,21,1,18,21,0,7,17,8,21,0,12,17,25,21,0,2,21,1,23,16,22,0,3,11,14,21,0,1,21,1,23,16,22,0,4,11,14,21,0,3,21,1,17,21,0,4,17,0,7,0,57,17,14,21,0,4,0,19,16,0,20,21,0,1,21,1,8,0,18,8,21,1,8,0,10,21,1,7,21,0,2,21,1,8,0,18,8,8,21,1,1,3,2,21,1,0,21,1,2,0,15,21,0,3,19,8,8,7,16,25,21,0,1,22,0,2,22,0,3,22,0,4,4,3,11,14,0,60,21,1,27,21,0,2,17,21,1,27,0,59,17,22,0,5,11,14,0,61,22,0,6,11,14,0,62,22,0,7,11,14,15,168,25,21,0,1,21,1,22,16,22,0,5,11,21,1,18,21,1,7,21,0,2,8,21,1,9,21,0,4,8,16,14,21,0,5,0,19,16,0,20,21,0,1,0,8,21,0,2,17,21,1,8,0,8,8,7,0,20,0,24,21,1,8,21,1,18,8,21,1,9,0,32,8,7,9,0,20,0,15,21,1,7,21,0,2,8,21,1,9,0,32,8,7,3,2,21,1,0,21,0,1,21,1,18,0,24,17,8,16,25,21,0,1,14,0,8,21,1,21,0,24,19,0,19,9,0,9,21,1,21,0,24,19,0,19,9,0,20,0,8,7,21,1,1,21,1,5,21,1,18,8,19,3,2,21,1,0,21,1,18,21,1,7,0,24,8,8,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,65,17,14,21,0,2,0,14,21,1,6,0,9,8,21,0,1,17,22,0,3,11,14,21,0,3,0,15,0,24,17,0,7,0,66,17,14,21,0,3,21,1,17,0,25,17,0,7,0,67,17,14,21,0,1,21,1,26,0,25,17,22,0,4,11,14,21,0,4,21,1,23,16,0,19,16,0,20,21,1,3,21,0,2,21,1,58,16,7,0,18,21,0,3,0,9,0,25,17,21,1,8,0,8,8,19,0,14,21,0,4,21,1,8,0,18,8,19,7,16,21,1,25,0,10,7,0,25,17,0,7,0,68,17,14,21,0,4,21,1,25,0,10,7,0,25,17,25,21,0,1,21,1,69,21,0,2,17,22,0,3,11,14,21,0,2,0,25,21,1,23,3,2,21,1,0,21,1,1,0,14,21,1,6,0,15,8,21,0,1,19,8,16,0,10,21,0,3,17,22,0,4,11,14,21,0,1,21,1,23,16,0,10,21,0,3,17,0,19,16,0,20,21,0,2,21,1,13,16,21,1,8,0,18,8,21,1,3,21,0,1,0,17,16,7,0,18,21,0,4,21,1,8,0,9,8,19,3,2,21,1,0,0,15,21,1,7,21,0,4,8,8,7,16,0,17,21,0,1,21,1,58,16,17,25,21,0,1,21,1,69,21,0,2,17,22,0,3,11,14,21,0,1,21,1,23,16,0,10,21,0,3,17,22,0,4,11,14,21,0,2,0,25,21,1,23,3,2,21,1,0,21,1,1,0,14,21,1,6,0,15,8,21,0,1,19,8,16,0,10,21,0,3,17,22,0,5,11,14,21,0,5,0,9,21,0,4,17,22,0,6,11,14,21,0,4,0,19,16,0,20,21,1,3,21,0,1,0,17,16,7,0,18,21,0,5,21,1,8,0,8,8,19,21,1,3,21,0,2,21,1,13,16,7,0,18,21,0,6,21,1,8,0,9,8,19,3,2,21,1,0,0,15,21,1,7,21,0,6,8,8,7,16,0,17,21,0,1,21,1,58,16,17,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,65,17,14,21,0,1,21,1,26,0,25,17,21,1,1,21,1,25,0,10,7,0,25,19,0,19,9,21,1,8,0,17,8,16,0,20,21,0,1,0,3,16,7,16,25,21,0,2,0,14,16,21,1,17,0,25,17,0,7,0,69,17,14,21,0,2,21,1,13,16,22,0,2,12,21,1,23,16,22,0,3,11,14,21,0,1,21,0,3,21,1,18,0,24,17,21,1,9,21,1,1,0,22,15,169,8,8,21,0,2,17,25,21,0,1,0,30,21,1,102,21,0,4,8,21,0,2,17,25,21,0,1,22,0,3,11,14,21,1,16,21,1,8,15,170,15,171,3,2,21,1,0,21,1,2,21,1,5,21,1,57,21,1,18,21,0,2,19,8,8,8,25,21,0,2,21,1,76,21,0,1,17,21,1,20,16,0,10,21,0,2,17,0,9,21,0,1,17,25,21,0,2,21,0,1,3,2,0,18,21,0,1,21,1,19,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,18,21,0,1,21,1,18,21,0,2,17,17,25,21,0,1,21,0,2,0,18,0,25,17,3,2,21,1,0,21,1,88,21,1,7,21,1,3,21,0,2,0,18,0,24,17,7,8,8,25,21,0,1,0,23,21,0,1,0,3,0,24,21,0,2,16,19,8,25,21,0,2,21,1,88,16,21,1,89,0,25,17,0,7,0,79,17,14,21,0,2,21,1,13,16,22,0,3,11,14,21,0,3,0,20,21,1,12,7,16,21,1,93,16,22,0,4,11,21,1,25,21,1,91,7,16,22,0,5,11,14,21,0,5,21,1,89,0,25,17,0,7,0,80,17,14,21,0,1,21,1,13,16,22,0,6,11,21,1,87,16,22,0,7,11,14,21,0,3,21,1,25,21,1,84,7,15,172,3,2,21,1,0,21,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,21,1,87,21,0,8,17,21,1,9,21,1,1,0,22,15,173,8,8,16,0,17,21,0,3,17,25,15,174,22,0,3,11,14,15,175,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,0,21,1,10,8,16,25,21,0,1,21,1,88,16,21,1,89,0,25,17,0,7,0,86,17,14,21,0,1,21,1,97,16,22,0,1,12,14,21,0,1,21,1,87,16,0,28,21,1,8,21,1,90,8,21,1,82,21,1,90,21,1,7,0,25,8,19,16,0,7,0,87,17,14,21,0,1,0,20,21,1,11,7,16,21,1,25,21,1,82,7,16,0,7,0,88,17,14,21,0,1,25,21,0,1,21,1,5,21,1,99,8,21,1,1,21,1,5,21,1,85,8,21,1,49,0,18,7,21,1,87,21,1,8,21,1,4,21,1,79,21,1,91,0,25,19,21,1,92,21,1,2,19,7,8,19,0,25,0,24,3,2,0,23,0,26,3,1,8,19,25,21,0,1,21,1,100,21,0,5,7,21,0,2,17,22,0,6,11,21,1,86,0,24,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,176,22,0,9,11,14,21,0,1,21,0,9,21,0,6,7,21,0,2,17,25,21,0,1,21,1,100,21,0,5,7,21,1,49,21,1,92,21,1,8,21,1,80,8,21,1,92,21,1,81,0,24,19,3,2,21,1,0,21,1,1,21,1,90,0,24,19,8,7,21,1,88,21,1,6,21,1,14,8,19,21,0,2,17,22,0,6,11,14,15,177,22,0,7,11,14,21,1,1,21,1,85,9,21,0,7,21,1,1,0,20,21,1,85,7,9,3,3,21,1,0,21,1,88,21,1,8,21,1,89,8,21,1,91,0,25,19,21,1,84,0,24,21,1,8,21,1,86,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,18,21,1,7,21,1,87,21,1,4,21,1,92,7,0,25,19,8,16,17,21,1,49,21,0,4,7,21,0,2,21,0,7,21,0,6,0,18,0,24,17,17,17,21,1,86,16,25,21,0,1,21,1,88,16,21,1,90,0,25,17,0,7,0,89,17,14,21,0,4,22,0,5,11,14,15,178,22,0,6,11,14,21,0,1,21,0,6,15,179,3,2,21,1,0,0,25,0,23,21,1,87,21,1,85,0,24,19,8,8,21,0,2,17,25,21,0,1,21,1,58,21,1,6,21,1,14,8,21,0,2,17,22,0,3,11,14,21,0,3,0,20,21,1,87,7,16,22,0,4,11,21,1,25,21,1,81,7,0,25,17,22,0,5,11,14,21,0,4,21,1,92,21,0,5,17,21,1,89,0,25,17,21,1,25,21,1,82,7,16,0,7,0,91,17,14,21,0,3,21,1,49,21,1,29,21,1,7,0,25,21,1,92,21,0,5,17,0,19,16,21,1,8,21,1,91,8,8,7,21,0,5,21,1,93,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,25,21,1,57,7,16,0,7,0,92,17,14,21,0,3,21,1,49,0,25,21,1,1,0,18,0,24,19,3,2,21,1,0,21,1,2,8,7,21,0,4,21,1,88,21,0,5,17,17,21,1,25,21,1,91,7,16,22,0,7,11,14,21,0,1,21,1,97,21,1,6,21,1,27,8,21,0,2,17,21,1,97,21,0,6,0,18,0,24,17,21,1,27,21,0,7,3,1,17,17,25,21,0,2,21,1,10,21,1,9,21,1,97,0,18,0,24,19,8,16,22,0,2,12,14,21,0,2,21,1,12,16,0,7,0,41,17,14,21,0,2,22,0,3,11,22,0,4,11,14,21,0,1,21,1,29,21,0,1,21,1,87,16,21,1,84,21,0,3,17,0,19,16,0,21,21,1,4,15,180,21,1,9,15,181,8,7,7,16,17,25,21,0,1,21,1,87,21,1,6,21,1,88,8,21,0,2,17,0,7,0,93,17,14,21,0,1,21,1,106,21,0,2,17,25,21,0,1,0,20,21,1,11,7,16,21,1,25,21,1,82,7,16,0,7,0,94,17,14,21,0,1,21,1,90,0,30,17,21,1,25,21,1,82,7,16,0,7,0,95,17,14,21,0,1,0,6,21,0,1,0,5,16,22,0,5,11,17,22,0,6,11,14,0,24,22,0,7,11,14,21,0,5,0,20,21,1,110,21,1,5,0,20,15,182,7,8,21,0,4,9,7,16,25,21,0,1,21,1,88,16,21,1,88,0,25,17,0,7,0,96,17,14,21,1,115,21,1,1,7,22,0,3,11,14,21,0,1,21,0,3,0,3,0,24,21,1,5,21,1,110,8,19,0,20,15,183,7,21,1,25,0,20,0,20,21,1,27,7,7,7,3,0,21,1,85,16,21,1,85,16,19,0,3,0,20,0,24,7,3,0,21,1,8,21,1,97,8,0,3,21,1,1,19,9,19,3,2,21,1,0,21,1,57,21,1,85,0,25,19,8,16,25,21,0,1,21,1,10,16,0,7,0,97,17,14,21,0,2,21,1,57,21,1,86,0,26,19,21,1,9,21,1,16,21,1,5,21,1,14,8,8,16,22,0,2,12,14,21,0,2,21,1,88,16,21,1,88,0,25,17,0,7,0,98,17,14,21,0,2,0,20,21,1,88,7,16,21,1,25,21,1,91,7,16,22,0,3,11,14,21,0,1,21,1,88,16,21,1,90,21,0,3,17,0,7,0,99,17,14,21,0,1,21,1,58,16,21,1,108,21,0,3,17,21,1,88,21,0,2,0,20,21,1,58,7,16,21,1,65,16,17,21,1,25,21,1,82,7,16,0,7,0,100,17,14,21,0,2,0,20,21,1,97,7,16,22,0,2,12,0,20,21,1,87,7,16,22,0,4,11,14,21,1,3,21,0,1,7,21,1,96,21,0,1,21,1,26,21,0,3,17,21,1,8,21,1,27,8,19,22,0,5,11,14,21,0,4,21,1,25,21,1,84,7,16,3,1,21,0,5,16,21,1,8,21,1,29,8,22,0,6,11,14,21,0,2,0,18,21,1,7,0,24,8,21,1,115,21,0,6,7,9,0,20,21,1,115,21,1,1,7,7,21,1,84,21,0,4,21,1,111,16,21,1,113,0,25,17,0,21,21,1,84,7,16,21,1,111,16,19,21,1,25,0,20,0,20,21,1,91,7,7,7,9,0,20,21,0,6,7,9,3,2,21,1,0,21,1,87,21,1,87,0,25,19,8,16,0,3,21,0,2,0,20,0,24,7,16,21,0,5,16,17,25,21,0,2,21,1,88,16,21,1,88,0,25,17,0,7,0,101,17,14,21,0,1,21,1,58,16,22,0,3,11,21,1,87,21,1,6,21,1,88,8,21,0,2,17,0,7,0,102,17,14,21,0,2,0,20,21,1,11,7,16,21,1,25,21,1,82,7,16,0,7,0,103,17,14,21,0,3,21,1,85,21,1,82,21,1,92,21,1,8,21,1,89,8,19,21,0,2,17,21,1,25,21,1,82,7,16,0,7,0,104,17,14,0,24,21,1,85,21,0,2,17,21,1,84,21,0,3,17,21,1,91,21,0,2,17,22,0,2,12,14,21,0,2,21,1,87,16,21,1,93,21,1,7,21,1,110,8,16,21,1,92,16,21,1,25,21,1,1,21,1,84,21,0,3,21,1,8,0,18,8,19,21,1,91,21,0,2,21,1,8,0,18,8,19,7,0,24,17,21,1,4,0,18,7,21,0,1,21,1,97,16,17,25,21,0,2,0,20,21,0,1,21,1,8,21,1,119,8,7,16,25,21,0,1,21,1,88,21,1,7,0,24,8,21,1,25,21,1,83,7,9,21,1,6,21,1,4,21,1,92,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,24,21,0,3,3,2,15,184,3,2,21,1,0,0,24,21,1,88,21,0,3,17,8,21,0,2,17,25,21,0,4,22,0,5,11,14,21,0,2,22,0,6,11,14,21,0,1,22,0,7,11,14,15,185,22,0,8,11,14,21,0,4,21,1,88,21,1,7,0,24,8,21,1,9,21,0,1,8,9,21,0,8,3,2,0,18,21,0,6,21,1,87,0,25,17,17,25,21,0,1,22,0,2,11,14,21,1,85,21,1,7,0,24,8,21,1,9,15,186,8,25,21,0,2,21,1,88,16,21,1,4,21,1,92,7,0,25,17,22,0,5,11,14,21,0,5,21,1,90,0,24,17,0,7,0,105,17,14,21,0,1,21,1,88,16,21,1,90,21,0,5,17,0,7,0,106,17,14,21,0,2,21,1,26,0,25,17,22,0,6,11,21,1,25,21,1,84,7,16,22,0,7,11,14,0,24,21,1,122,21,0,2,21,1,97,16,21,1,8,0,18,8,21,1,6,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,87,16,0,25,0,25,21,1,8,21,1,92,21,1,5,21,1,110,8,8,21,1,84,21,0,7,19,0,20,21,1,91,21,1,7,21,0,7,8,21,1,8,21,0,8,8,7,9,21,1,4,21,1,90,7,0,24,19,21,1,25,21,1,82,7,9,3,2,21,1,0,21,1,85,21,1,7,0,24,8,8,16,0,7,0,107,17,14,21,0,1,21,1,88,16,21,1,4,21,1,92,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,16,16,21,1,26,21,0,9,17,22,0,10,11,14,21,0,10,21,1,121,21,0,6,17,22,0,11,11,14,21,0,11,21,1,25,21,1,122,21,0,1,21,1,97,16,21,1,8,0,18,8,21,1,8,21,0,4,21,1,7,21,0,2,21,1,97,16,21,1,8,0,18,8,8,8,7,7,16,22,0,12,11,14,21,1,4,0,24,7,21,1,90,21,0,12,21,1,7,21,1,84,21,1,7,21,0,6,21,1,25,21,1,84,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,110,16,0,20,21,0,1,21,1,58,16,21,1,8,0,18,8,7,16,21,1,25,21,1,84,7,21,1,110,9,21,1,8,21,1,97,8,16,21,1,84,21,0,10,21,1,25,21,1,84,7,16,17,0,20,15,187,21,1,7,21,0,2,21,1,87,16,8,7,16,0,3,0,24,17,25,21,0,1,22,0,2,11,14,21,1,104,21,1,82,7,21,1,93,9,0,21,21,1,82,7,21,1,104,21,1,91,7,9,3,2,0,18,21,0,1,17,22,0,3,11,14,15,188,0,3,0,24,19,25,21,0,1,21,1,88,16,21,1,90,0,25,17,0,7,0,110,17,14,21,0,1,21,1,127,16,22,0,5,11,14,21,0,1,21,1,87,16,21,1,110,16,0,20,0,25,21,1,1,21,0,1,21,1,88,21,1,85,0,25,19,21,1,9,21,1,74,21,1,85,7,8,16,21,1,29,21,0,5,17,21,1,8,0,18,8,21,1,6,21,1,58,8,0,25,21,1,8,21,1,92,8,19,3,2,21,1,0,21,1,85,21,1,7,0,24,8,8,7,16,21,0,4,21,0,5,17,21,1,29,21,0,5,21,1,130,16,17,0,3,0,24,17,25,21,0,2,21,1,88,16,22,0,3,11,14,21,0,1,21,1,88,16,21,1,90,21,0,3,17,0,7,0,111,17,14,21,0,1,21,0,3,21,1,126,21,1,110,8,21,0,2,21,1,58,16,17,21,0,3,21,1,126,21,1,57,8,21,0,2,17,0,3,0,24,17,25,21,0,2,21,1,88,16,21,1,89,0,25,17,0,7,0,112,17,14,21,0,1,21,1,58,16,21,1,87,21,1,6,21,1,90,8,21,0,2,17,0,7,0,113,17,14,21,0,2,21,1,97,16,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,0,7,0,114,17,25,21,0,1,21,1,58,16,21,1,136,21,0,2,17,0,20,21,1,25,21,1,80,7,7,16,21,1,110,16,0,20,21,1,3,21,0,1,7,21,1,120,21,1,29,21,1,7,21,0,2,8,19,7,16,25,21,0,1,21,1,139,21,0,2,17,14,21,0,2,21,1,97,16,22,0,2,12,14,21,0,2,21,1,138,16,21,1,93,16,21,1,25,21,1,91,7,16,21,1,92,21,0,1,21,1,88,16,17,22,0,3,11,14,21,0,3,21,1,85,21,0,2,17,21,1,25,21,1,82,7,16,0,7,0,115,17,14,21,0,1,21,1,140,21,0,3,21,1,110,16,21,1,1,21,1,112,21,1,4,21,1,138,21,1,5,21,1,93,8,7,19,21,0,2,17,21,1,135,21,0,2,17,17,25,21,0,1,21,1,139,21,0,2,17,14,21,0,2,21,1,97,16,22,0,2,12,14,21,0,1,21,1,88,16,22,0,3,11,14,21,0,2,21,0,3,21,1,8,21,1,85,8,21,1,82,21,1,138,19,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,1,21,1,140,21,0,3,21,1,110,16,21,1,1,21,1,112,21,1,4,21,1,138,21,1,5,21,1,93,8,7,19,21,0,2,17,21,1,135,21,0,2,17,21,1,130,16,17,25,21,0,2,21,1,88,16,21,1,4,21,1,92,7,0,25,17,22,0,3,11,14,21,0,3,21,1,90,0,24,17,0,7,0,116,17,14,21,0,1,21,1,88,16,21,1,90,21,0,3,17,0,7,0,117,17,14,21,0,1,21,1,137,21,1,7,21,0,2,8,21,1,97,21,1,5,21,1,144,21,1,8,21,1,74,21,1,134,7,8,8,21,1,97,21,1,3,0,26,7,21,1,135,21,1,58,19,19,9,21,1,6,21,1,137,8,21,0,2,17,25,21,0,1,15,189,21,0,5,21,1,147,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,21,1,174,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,24,22,0,7,11,22,0,8,11,14,21,0,6,0,24,21,1,125,15,190,8,16,14,0,24,15,191,0,23,21,1,3,15,192,7,8,21,0,2,17,22,0,9,11,14,21,0,1,3,1,22,0,10,11,14,15,193,21,1,7,21,0,9,8,22,0,11,11,14,21,0,7,21,0,11,21,0,4,17,22,0,12,11,14,21,0,8,21,1,92,16,21,0,10,21,0,11,21,1,7,21,1,174,8,3,2,21,1,148,21,1,85,21,1,7,0,24,8,8,21,0,4,17,22,0,13,11,14,21,0,6,0,24,21,1,125,21,1,3,21,0,12,21,0,13,3,2,7,21,1,147,0,24,21,1,8,21,1,85,8,19,21,1,147,21,1,79,19,8,16,25,21,0,1,21,0,4,21,0,2,17,22,0,6,11,14,21,0,6,21,0,5,21,0,2,17,21,1,57,21,0,1,17,21,1,159,16,14,21,0,6,25,21,0,1,21,1,88,16,21,1,88,0,25,17,21,1,158,16,14,21,0,1,21,1,135,16,22,0,3,11,14,21,0,3,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,3,0,5,16,22,0,4,11,14,0,25,21,1,90,21,0,4,17,21,1,25,21,1,82,7,16,21,1,159,16,14,21,0,4,21,1,93,16,21,1,112,16,22,0,5,11,14,21,0,5,21,1,49,0,30,7,16,21,1,135,21,0,1,21,1,49,21,1,87,7,16,21,1,112,16,17,21,1,146,21,0,5,21,1,135,21,0,3,17,21,1,127,16,17,25,21,0,2,21,1,88,16,21,1,88,0,25,17,21,1,158,16,14,21,0,2,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,1,21,1,135,21,1,6,21,1,146,21,1,7,21,1,127,8,8,21,0,2,21,1,136,16,17,25,0,26,21,1,76,21,0,2,21,1,87,16,17,21,1,110,16,21,1,84,0,26,17,22,0,3,11,14,21,1,3,21,0,1,3,1,21,1,135,21,0,2,21,1,146,21,0,3,21,1,91,0,25,17,17,17,7,21,1,147,21,1,85,21,1,137,21,0,2,21,1,146,21,0,3,17,19,21,1,147,9,19,25,21,0,1,21,1,10,16,21,1,159,16,14,21,0,1,21,1,88,16,21,1,88,0,24,17,21,1,159,16,14,21,0,1,21,1,147,16,25,21,0,2,21,1,88,21,1,6,21,1,92,8,21,0,1,17,22,0,3,11,14,21,0,3,0,25,21,1,8,21,1,90,8,21,1,82,21,1,90,21,1,7,0,24,8,19,16,21,1,159,16,14,21,0,2,0,25,21,1,87,3,2,21,1,148,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,87,16,21,1,90,21,0,4,17,21,1,159,16,14,21,0,1,21,1,146,21,1,108,21,1,7,21,0,4,8,3,2,21,1,148,21,0,3,8,16,21,1,57,21,0,2,17,21,1,159,16,14,21,0,1,21,1,109,21,0,4,17,25,21,0,1,21,1,87,16,21,1,88,0,26,17,21,1,159,16,14,21,0,1,21,1,146,16,21,1,57,21,0,2,17,21,1,159,16,14,21,0,1,21,1,146,0,25,17,25,21,0,1,21,1,87,16,21,1,88,0,25,17,21,1,159,16,14,21,0,1,21,1,146,16,25,21,0,1,21,1,88,16,21,1,88,0,25,17,21,1,158,16,14,21,0,1,0,20,21,1,12,7,16,21,1,25,21,1,82,7,16,21,1,158,16,14,21,0,1,21,1,109,21,1,7,0,25,8,21,1,90,21,1,109,21,1,7,0,30,8,19,21,1,25,21,1,82,7,9,16,21,1,159,16,14,21,0,1,0,5,16,25,21,0,1,21,1,16,21,1,6,21,0,4,21,1,48,0,20,21,0,4,7,8,8,21,0,2,17,25,21,0,5,14,21,0,1,21,0,4,21,0,2,17,25,21,0,1,21,1,174,16,25,21,0,2,21,1,8,21,0,1,8,0,23,21,0,2,21,0,1,9,8,25,21,1,147,21,1,7,0,25,8,21,0,1,21,1,8,15,194,8,21,1,147,21,1,7,0,24,8,19,25,21,1,1,21,1,5,21,1,57,8,21,1,85,0,24,19,21,1,159,9,21,1,2,21,1,49,21,1,149,21,0,1,7,7,19,25,21,1,1,21,1,5,21,1,57,8,21,1,85,0,24,19,21,1,159,9,21,1,2,0,24,21,1,5,21,1,158,8,0,23,21,1,166,21,1,149,21,0,1,7,7,8,19,25,21,1,1,21,1,5,21,1,88,8,21,1,85,0,24,19,21,1,159,9,21,1,2,21,1,74,21,1,149,21,0,1,7,21,1,1,21,1,7,21,1,10,21,1,5,21,1,159,8,8,9,7,19,25,21,1,1,21,1,5,21,1,88,8,21,1,85,0,24,19,21,1,159,9,21,1,2,0,24,21,1,5,21,1,158,8,0,23,21,1,87,21,1,85,0,25,19,21,1,153,21,1,109,21,1,7,0,25,8,21,1,49,21,1,149,21,0,1,7,7,21,1,109,21,1,7,0,30,8,19,21,1,135,21,1,146,19,8,8,19,25,21,1,147,21,1,7,0,25,8,21,0,1,21,1,8,15,195,8,21,1,146,21,1,7,0,24,0,26,3,2,8,19,25,21,0,2,21,1,167,21,0,1,8,25,21,1,149,21,0,2,7,22,0,3,11,14,21,0,3,21,1,7,21,0,1,8,0,23,21,0,3,8,21,1,149,21,0,1,7,9,25,21,0,1,21,1,155,21,1,149,21,0,2,7,8,25,21,0,1,21,1,153,21,0,2,8,21,1,161,21,0,1,21,1,92,16,21,1,153,21,0,2,8,8,25,21,0,1,21,1,92,16,21,1,153,21,0,2,8,25,21,1,149,21,0,1,7,0,23,21,1,149,21,0,2,7,8,25,21,1,149,21,0,1,7,21,1,7,21,0,2,8,25,21,0,1,0,23,21,1,160,8,25,21,1,149,21,0,2,7,21,1,149,21,0,1,7,9,0,23,21,0,1,21,1,3,0,24,21,1,5,21,1,158,8,7,15,196,3,2,21,1,148,21,1,1,21,1,5,21,1,170,8,8,21,0,2,17,8,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,21,1,170,21,1,93,9,22,0,6,11,14,21,0,5,15,197,15,198,21,1,3,21,1,160,7,3,2,21,1,148,21,1,1,21,1,5,21,0,6,8,8,3,2,21,1,148,21,1,2,21,1,5,21,0,6,8,8,21,0,3,17,25,21,1,1,21,1,57,21,1,5,21,1,159,8,21,0,1,19,21,1,2,21,1,1,19,25,21,0,1,21,1,174,16,21,1,1,15,199,3,2,21,1,148,0,24,21,1,1,21,1,5,0,1,8,21,1,146,0,24,0,35,3,2,19,21,1,58,0,31,21,1,167,3,2,19,3,2,21,1,148,21,1,58,21,1,7,21,1,3,21,1,160,7,8,21,1,82,21,1,58,19,8,8,21,0,1,17,25,21,1,85,21,1,137,21,0,1,21,1,135,16,19,21,1,147,9,21,1,4,21,1,147,7,21,0,1,21,1,49,21,1,87,7,16,21,1,87,21,1,135,21,1,112,19,16,19,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,94,16,25,0,25,0,9,21,1,6,17,22,1,6,12,14,21,0,1,0,18,21,1,6,17,25,21,1,8,21,1,7,21,1,5,0,18,21,0,1,17,17,22,1,8,12,25,21,0,2,0,16,16,22,0,5,11,14,21,0,2,0,14,16,0,19,16,21,2,25,0,10,21,2,7,21,0,1,0,16,16,21,2,8,0,18,8,0,14,21,0,5,21,2,8,0,18,8,19,8,7,0,25,17,0,7,0,37,17,14,21,0,5,21,2,25,0,10,7,0,25,17,0,19,16,0,20,21,0,1,0,17,16,21,2,8,0,18,8,21,0,4,21,0,2,0,17,16,21,2,8,0,18,8,19,7,16,0,17,21,0,5,17,25,21,0,2,0,16,16,22,0,5,11,14,21,0,2,0,14,16,22,0,6,11,14,21,0,1,0,16,16,22,0,7,11,14,21,0,6,0,19,16,21,2,25,0,10,21,2,7,21,0,7,21,2,8,0,18,8,0,14,21,0,5,21,2,8,0,18,8,19,8,7,0,25,17,0,7,0,38,17,14,21,0,6,0,9,21,0,1,0,14,16,17,0,19,16,21,2,25,0,10,21,2,7,0,8,21,2,7,21,0,6,8,21,2,4,0,18,7,21,0,7,19,8,7,0,25,17,22,0,8,11,14,21,0,2,0,17,16,22,0,9,11,14,21,0,1,0,17,16,22,0,10,11,14,21,0,8,0,19,21,2,6,0,20,21,2,3,21,0,10,7,0,18,0,8,21,2,7,0,10,21,2,7,21,0,8,8,8,19,21,0,4,21,0,9,21,2,8,0,18,8,19,7,8,21,0,9,21,2,23,16,17,0,17,16,0,17,21,0,7,17,25,21,0,1,21,2,31,21,0,4,7,21,0,2,17,25,21,0,1,0,20,15,200,21,0,2,7,7,16,25,21,0,2,0,20,15,201,21,0,1,7,7,16,25,21,1,6,0,10,0,26,17,0,15,21,0,1,21,2,25,21,2,20,7,16,22,1,10,12,0,9,21,0,1,21,2,25,21,2,21,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,4,0,24,7,21,2,19,0,24,21,2,122,21,1,8,21,2,8,0,18,8,21,2,6,21,0,4,8,7,21,1,7,17,19,22,0,5,11,14,21,2,1,21,1,6,3,2,21,2,0,0,15,21,2,7,21,1,6,8,8,22,0,6,11,14,0,24,0,14,21,1,6,17,0,8,21,1,6,17,0,4,0,26,17,21,2,21,16,22,0,7,11,0,19,16,0,20,21,2,1,0,8,0,25,19,0,9,21,0,7,19,0,12,0,26,19,7,16,21,2,25,15,202,7,21,1,6,0,19,16,17,25,21,0,1,0,20,21,2,12,7,16,21,2,25,0,10,7,0,25,17,0,7,0,41,17,14,0,25,0,9,21,1,3,17,22,0,3,11,14,21,2,1,0,9,21,0,3,19,21,2,4,0,18,7,21,1,3,0,19,16,0,20,0,9,21,2,7,21,0,3,8,7,16,0,21,21,2,1,21,2,4,0,18,7,21,0,1,19,0,14,0,24,19,0,10,0,9,19,0,8,21,2,1,19,7,16,19,22,0,4,11,14,21,0,1,0,21,0,8,7,16,21,2,8,0,18,8,22,0,5,11,14,0,24,21,0,4,16,22,0,6,11,21,0,5,16,22,0,7,11,14,21,0,3,21,0,5,16,0,19,16,0,20,15,203,7,16,25,21,0,1,0,9,21,1,3,17,0,19,16,0,20,0,8,21,2,7,21,0,1,8,7,16,25,21,0,1,0,3,21,0,2,19,25,21,0,2,0,22,21,0,1,21,2,95,21,0,2,17,8,25,21,2,1,21,2,10,9,0,14,21,2,6,0,14,8,0,16,21,2,6,21,2,49,0,14,7,8,21,2,25,0,10,7,0,25,19,3,3,21,2,25,15,204,7,16,22,0,3,11,14,15,205,22,0,4,11,14,21,2,14,21,0,4,15,206,3,2,21,2,0,21,2,1,21,2,5,21,2,25,21,0,3,7,8,8,3,2,21,2,0,21,2,1,0,18,0,24,19,21,2,10,9,8,22,0,5,11,14,0,24,22,0,6,11,14,21,0,1,15,207,16,14,21,0,1,21,0,2,3,2,21,0,5,0,24,17,22,0,7,11,14,21,0,6,0,19,16,0,20,15,208,7,16,22,0,8,11,14,21,0,8,21,0,4,0,14,21,0,7,17,21,2,9,21,2,3,21,2,50,7,8,16,25,15,209,21,2,7,21,0,2,8,22,0,3,11,14,15,210,22,0,4,11,14,15,211,21,2,7,0,24,8,22,0,5,11,14,21,0,1,21,2,3,21,0,2,7,0,18,0,24,19,0,18,0,25,19,21,0,5,3,2,21,2,0,21,1,7,21,2,5,21,2,10,8,8,16,25,21,1,6,21,0,1,16,25,21,0,4,22,0,6,11,14,21,0,1,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,5,21,2,10,21,2,19,21,0,8,19,21,2,9,15,212,21,2,5,21,1,6,8,8,16,21,0,7,21,0,2,17,22,0,10,11,14,21,0,10,21,0,9,21,2,9,15,213,8,16,25,21,0,1,15,214,21,0,1,21,0,2,21,0,4,3,3,7,3,2,21,2,0,21,2,1,21,1,8,9,8,25,21,1,5,0,23,21,0,1,8,25,21,0,1,0,23,21,1,5,8,25,21,1,5,21,0,1,3,2,21,2,0,21,0,4,0,9,0,25,19,21,2,6,0,10,0,23,21,2,1,8,8,8,25,21,0,1,22,0,3,11,14,15,215,25,21,0,1,22,0,3,11,14,15,216,25,21,0,2,21,0,1,16,25,21,0,1,21,2,49,21,1,18,7,16,25,21,0,1,21,0,2,16,25,21,0,1,0,14,21,2,7,21,1,4,8,0,9,0,25,19,21,2,9,15,217,8,16,14,21,1,5,0,18,0,25,0,8,21,1,3,17,22,1,3,12,17,25,21,0,2,22,0,5,11,14,21,0,4,22,0,6,11,14,21,0,1,0,20,15,218,7,16,25,21,0,2,22,0,3,11,14,21,1,9,0,18,21,0,1,17,22,0,4,11,14,21,1,5,0,20,0,18,21,2,7,21,0,1,8,7,16,22,0,5,11,14,21,0,4,0,19,16,0,20,21,2,3,21,0,5,7,0,18,0,10,21,2,7,21,0,3,8,19,7,16,22,0,6,11,14,21,0,3,0,19,16,0,20,21,2,2,7,21,0,6,17,0,20,21,2,1,7,21,1,10,0,19,16,17,0,17,16,21,2,49,0,14,7,21,0,5,17,21,2,25,0,10,7,0,25,17,0,7,0,55,17,14,21,0,6,21,2,36,16,22,0,7,11,14,21,0,7,21,2,23,16,0,19,16,0,20,21,0,6,21,1,8,0,8,7,0,24,17,21,2,29,21,0,7,17,21,2,8,0,18,8,21,2,8,0,9,8,7,16,22,0,8,11,14,21,0,8,0,20,21,2,1,7,21,1,12,17,21,2,49,0,8,7,21,0,7,0,20,21,0,6,21,2,8,0,18,8,21,2,8,0,10,8,7,21,1,12,17,17,22,1,12,12,14,21,0,7,0,20,0,8,21,2,7,21,0,4,21,2,8,0,10,8,8,7,21,1,11,17,22,1,11,12,14,21,0,4,0,10,22,1,10,13,25,21,0,4,0,18,21,0,1,17,0,18,21,0,2,17,25,21,2,29,21,2,7,21,1,7,0,9,21,1,6,17,0,19,16,0,20,0,8,21,2,7,21,1,7,8,7,16,8,22,0,3,11,14,21,1,5,0,18,0,24,17,21,0,3,16,22,0,4,11,14,21,1,5,0,20,21,0,3,21,2,49,0,14,7,21,0,4,19,21,2,25,0,10,7,9,7,16,21,2,25,0,10,7,0,25,17,0,7,0,56,17,14,21,0,4,21,2,25,0,10,7,16,22,0,5,11,0,19,16,0,17,21,0,4,17,22,0,6,11,14,21,0,6,0,20,21,2,2,7,21,0,1,17,21,1,13,21,0,6,0,20,0,8,21,2,7,0,10,21,2,7,21,0,5,8,8,7,21,0,2,17,17,25,21,0,2,0,14,16,21,2,17,0,25,17,0,7,21,1,6,17,14,21,0,2,21,2,13,16,22,0,2,12,14,21,0,2,0,20,21,2,11,7,16,21,2,25,0,10,7,0,25,17,0,7,21,1,7,17,14,21,0,2,21,2,23,16,22,0,3,11,14,21,0,1,21,2,58,16,21,2,23,21,2,8,21,2,19,8,21,2,9,15,219,8,21,0,3,17,22,0,4,11,14,15,220,22,0,5,11,14,0,24,21,2,18,16,22,0,6,11,14,0,25,22,0,7,11,14,15,221,22,0,8,11,14,0,24,22,0,9,11,14,21,0,3,0,19,16,0,20,21,0,2,21,2,8,0,18,8,15,222,21,1,4,15,223,7,21,0,8,21,2,2,19,3,2,21,2,0,21,1,3,8,21,0,4,21,2,8,0,18,8,19,7,16,22,0,10,11,14,21,0,1,21,2,16,16,21,2,1,0,22,0,17,21,2,7,21,0,4,8,15,224,3,2,21,2,0,21,0,6,0,14,16,21,2,18,0,24,17,8,8,16,25,21,0,1,0,14,16,0,15,21,1,3,17,0,7,0,70,17,14,21,0,2,0,20,21,2,12,7,16,21,2,25,0,10,7,16,0,7,0,71,17,14,21,0,1,21,2,58,16,22,0,3,11,14,21,1,3,0,19,16,0,20,21,0,2,21,2,8,0,18,8,0,9,21,0,3,21,2,8,0,18,8,19,0,8,0,25,19,7,16,22,0,4,11,14,21,0,4,0,20,0,15,21,2,7,0,24,8,7,16,21,2,25,0,10,7,16,0,7,0,72,17,14,21,0,3,21,2,29,21,1,3,0,9,21,2,7,21,2,23,8,21,0,3,17,0,19,16,0,20,0,8,21,2,7,21,1,3,8,7,16,17,22,0,5,11,21,2,25,0,10,7,0,25,17,22,0,6,11,14,0,25,0,9,21,1,3,17,15,225,16,21,2,27,21,0,6,3,1,17,0,21,0,10,7,16,21,2,39,16,22,0,7,11,14,21,0,2,21,2,1,21,2,49,15,226,7,21,0,7,19,21,2,25,0,20,0,8,7,7,9,21,2,6,0,20,0,8,7,8,21,0,4,17,0,25,21,2,8,0,14,8,0,9,0,25,19,21,2,9,21,2,4,0,19,0,17,21,0,5,19,21,2,8,0,20,0,8,7,8,7,8,21,0,6,17,0,20,21,0,1,0,17,16,21,2,8,0,18,8,7,16,25,21,0,1,0,14,16,0,15,0,25,17,0,7,0,73,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,14,16,21,2,17,0,25,17,0,7,0,74,17,14,21,0,1,21,2,58,16,21,2,23,21,2,6,0,15,8,21,0,2,17,0,7,0,75,17,14,21,0,2,21,2,23,16,22,0,3,11,14,21,0,2,0,17,16,21,2,8,0,18,8,22,0,4,11,14,21,0,1,21,0,3,21,2,18,0,24,17,21,2,9,15,227,8,0,24,17,25,21,0,1,21,2,49,21,2,1,0,25,3,2,21,2,0,21,2,2,8,7,21,1,4,17,21,2,25,21,2,84,7,16,22,0,3,11,14,21,0,3,21,2,85,0,24,17,0,7,0,81,17,14,21,1,4,21,2,87,16,0,19,16,21,2,84,21,1,4,17,21,2,25,21,2,91,7,16,22,0,4,11,14,21,1,3,0,18,21,0,4,17,21,2,151,16,22,0,5,11,14,0,34,21,2,85,21,0,5,17,0,7,0,82,17,14,21,2,88,21,2,7,21,2,80,8,0,7,0,83,19,21,2,2,21,2,1,19,22,0,6,11,14,21,0,3,21,2,76,21,1,7,17,21,0,6,21,2,80,21,2,81,3,3,21,2,0,21,0,5,21,2,80,0,26,17,8,16,22,0,7,11,14,21,1,3,21,2,49,21,2,1,21,0,7,3,2,21,2,0,21,2,2,8,7,21,1,4,17,22,1,3,12,14,21,0,7,21,2,84,21,0,3,17,21,0,5,21,2,88,0,28,17,21,2,9,21,2,85,21,2,7,21,1,7,8,21,2,9,15,228,8,8,16,25,21,1,8,0,19,16,0,20,21,2,2,7,21,2,7,0,3,21,2,5,21,2,85,8,8,15,229,3,2,21,2,0,21,1,7,21,2,85,0,24,17,8,21,0,1,17,25,21,0,1,21,2,12,16,0,7,0,84,17,14,21,0,1,0,19,16,25,21,0,1,21,2,88,16,21,2,88,0,25,17,0,7,0,85,17,14,21,0,1,0,20,21,1,3,7,16,21,2,25,0,20,21,2,27,21,2,7,21,2,97,8,7,7,3,0,21,2,85,16,17,0,3,21,0,1,0,20,0,24,7,16,17,25,21,1,9,21,1,7,21,2,91,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,49,21,0,5,7,21,2,2,21,2,5,0,20,21,0,1,21,2,8,21,0,5,8,7,8,21,2,1,21,2,5,0,20,21,2,1,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,0,21,2,57,21,2,6,21,2,14,8,21,2,89,21,0,4,21,2,81,0,24,17,19,21,2,83,0,24,21,2,89,21,0,4,17,21,2,82,21,1,7,17,19,21,2,96,0,26,19,21,2,25,21,2,91,21,2,7,0,26,21,2,8,21,2,84,8,8,7,9,8,21,0,2,17,25,21,0,1,21,2,58,16,21,2,29,21,0,2,0,19,16,17,22,0,3,11,14,21,0,1,21,2,26,21,0,2,17,22,0,4,11,21,2,25,21,2,84,7,16,22,0,5,11,14,21,0,5,0,19,16,21,2,97,21,0,4,17,22,0,6,11,14,21,0,1,15,230,0,22,21,2,3,21,0,3,21,2,25,21,2,84,7,16,0,19,16,0,20,21,2,1,21,2,84,21,0,5,19,21,2,91,21,0,6,19,21,2,4,21,2,29,7,21,0,1,21,2,97,16,19,7,16,21,2,97,21,0,3,17,7,8,16,25,21,0,1,21,2,58,16,21,2,68,0,25,17,22,0,3,11,14,15,231,22,0,4,11,14,21,1,5,21,2,3,21,0,1,7,21,2,97,21,0,4,19,21,2,94,21,2,8,21,2,96,8,3,2,21,2,0,21,2,87,21,2,7,21,2,3,21,2,152,7,8,8,21,0,3,17,25,21,0,1,21,2,74,21,2,85,7,16,21,2,25,21,1,5,7,21,0,2,17,25,21,0,2,21,2,88,21,1,4,17,25,21,1,3,21,2,91,22,1,4,13,14,21,0,1,21,2,91,0,25,17,25,21,0,1,14,21,1,6,0,18,21,1,7,17,21,2,1,0,25,21,2,91,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,97,16,21,1,3,16,0,20,21,0,1,21,2,58,16,21,2,110,16,21,2,97,16,21,2,8,21,2,29,8,7,16,25,21,0,1,21,2,87,21,2,6,21,2,92,8,21,0,2,17,21,2,84,16,22,0,3,11,14,21,0,1,21,2,87,21,2,6,21,2,80,8,21,0,2,17,22,0,4,11,14,21,0,1,15,232,21,2,7,21,2,87,21,2,91,21,0,4,21,2,110,16,21,2,91,0,25,17,21,2,92,16,19,8,21,2,6,15,233,8,21,0,2,17,22,0,5,11,14,21,0,5,21,0,3,3,2,25,21,0,2,22,0,3,11,14,21,0,1,22,0,4,11,14,15,234,21,1,7,3,2,21,2,0,21,2,88,21,2,7,21,1,6,8,8,22,0,5,11,14,0,24,21,0,5,16,25,15,235,22,0,3,11,14,0,30,21,0,3,0,25,21,2,91,21,0,1,17,17,21,2,91,0,25,17,25,21,0,2,21,2,123,21,0,1,21,2,8,21,1,13,8,7,16,25,21,0,2,21,2,88,16,21,2,4,21,2,92,7,0,25,17,22,0,3,11,14,21,0,3,21,2,90,0,24,17,0,7,0,108,17,14,21,0,1,21,2,88,16,21,2,90,21,0,3,17,0,7,0,109,17,14,21,0,1,21,2,16,16,21,2,1,21,2,5,21,0,3,21,2,126,0,24,8,8,21,2,1,21,0,3,21,2,126,21,2,85,8,3,2,21,2,0,21,0,3,21,2,85,0,24,17,8,21,2,6,0,20,21,2,58,7,8,21,1,3,9,3,2,21,2,0,21,0,2,21,2,87,16,21,2,85,0,24,17,8,15,236,3,2,21,2,0,21,2,97,21,2,5,21,2,87,8,21,2,85,0,29,19,21,2,6,21,2,82,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,11,16,0,7,0,118,17,14,21,0,1,21,2,80,21,1,8,17,22,1,8,12,14,21,0,1,21,2,81,21,1,7,17,22,1,7,12,25,15,237,21,2,3,21,0,2,7,7,25,21,2,2,21,0,1,9,25,21,0,1,21,2,110,16,21,2,135,21,1,10,17,0,21,21,0,2,7,16,25,21,0,2,21,0,1,16,25,21,0,2,21,2,25,21,0,1,7,16,25,21,2,1,21,2,149,21,2,4,21,0,2,7,7,21,0,1,19,25,21,2,1,21,2,149,21,1,4,7,21,0,2,19,15,238,21,2,149,21,0,1,7,8,25,21,2,1,21,2,149,21,2,4,21,1,4,7,7,21,0,1,19,21,2,149,21,0,2,7,9,25,21,0,1,21,2,161,21,0,2,8,21,2,167,21,0,1,8,25,21,0,1,21,2,2,21,0,4,17,25,21,0,4,21,2,2,21,0,1,17,25,21,0,2,22,0,3,11,0,9,16,22,0,4,11,14,0,24,22,0,5,11,22,0,6,11,22,0,7,11,14,0,28,22,0,8,11,14,21,0,1,0,25,0,14,21,2,7,17,0,9,0,25,17,21,3,9,0,20,0,10,21,3,7,21,2,7,8,7,8,16,21,3,8,0,18,8,21,3,6,21,1,5,8,22,0,9,11,14,21,0,9,0,24,0,25,0,26,3,4,22,0,10,11,14,0,8,15,239,3,2,0,18,21,0,3,0,15,0,29,17,17,22,0,11,11,14,15,240,22,0,12,11,14,15,241,15,242,21,0,12,3,3,21,3,0,15,243,8,22,0,13,11,14,21,0,1,0,20,21,0,1,21,3,8,15,244,8,7,16,25,21,1,6,21,1,7,0,14,21,0,1,17,21,3,9,15,245,8,16,25,0,24,21,0,1,3,2,21,3,0,21,0,2,8,25,21,0,0,0,24,3,2,25,21,0,2,22,0,3,11,14,21,0,1,21,3,49,0,17,7,16,22,0,4,11,0,18,0,24,17,21,3,23,16,22,0,5,11,14,0,30,22,0,6,11,14,21,0,4,21,3,8,21,3,49,0,18,7,8,21,3,8,21,1,5,8,22,0,7,11,14,15,246,25,21,0,1,15,247,0,20,21,0,0,7,3,2,21,3,0,21,3,10,8,16,25,21,0,1,21,1,7,16,22,0,3,22,0,4,4,2,11,14,21,0,3,22,1,7,12,14,21,0,4,25,21,0,1,21,3,10,0,9,0,25,19,21,3,9,21,3,18,8,16,22,0,1,12,14,21,0,1,0,16,16,22,0,3,11,21,3,25,0,10,7,0,25,17,22,0,4,11,14,21,0,2,0,20,0,18,21,3,7,0,24,8,7,16,22,0,5,11,14,21,0,5,0,24,21,3,35,21,3,32,8,16,22,0,6,11,14,21,0,6,0,20,21,0,2,21,3,8,0,18,8,0,18,0,25,19,7,16,22,0,7,11,14,21,3,3,21,0,5,7,0,18,21,0,6,21,3,8,0,18,8,19,21,0,4,3,2,21,3,0,0,15,21,3,7,21,0,6,21,3,23,16,8,8,22,0,8,11,14,0,24,22,0,9,11,21,0,8,16,22,0,10,11,14,21,0,4,0,19,16,0,20,21,0,1,0,17,16,21,3,8,0,18,8,15,248,3,2,21,3,0,15,249,8,7,16,0,17,21,0,3,17,25,21,0,1,21,3,49,21,3,2,0,14,21,0,1,21,0,5,16,19,21,3,9,21,0,4,8,7,21,0,1,21,3,23,16,0,19,16,17,25,21,0,1,0,17,21,3,5,21,3,3,21,2,7,7,0,18,21,0,2,19,21,1,4,21,0,0,21,3,7,21,0,2,0,8,0,25,17,8,8,8,0,17,0,16,19,21,1,3,3,2,21,3,0,21,2,7,21,3,23,16,21,3,17,21,0,2,17,8,16,25,21,0,1,3,1,3,0,21,3,27,3,2,21,3,0,21,3,2,21,3,10,9,8,21,1,6,17,22,1,6,12,25,21,0,1,21,2,7,21,1,6,8,25,21,0,4,21,0,1,21,0,2,17,25,0,24,21,3,3,21,1,3,21,0,1,7,7,16,21,2,16,16,25,0,24,21,3,3,21,0,2,21,1,3,21,0,1,8,7,16,21,2,16,16,25,21,0,1,22,2,4,12,21,3,4,0,18,7,21,2,6,17,22,2,5,12,14,0,30,22,2,3,12,25,21,1,5,22,0,3,11,14,21,0,1,21,1,6,22,1,5,13,14,21,0,3,25,21,0,1,21,3,27,21,0,1,21,3,23,16,0,9,21,0,2,17,0,19,21,3,5,0,20,0,25,7,8,16,17,25,21,0,1,0,20,0,8,7,21,0,2,0,20,21,0,4,21,3,8,0,10,8,7,16,17,25,21,0,1,0,25,21,3,8,0,14,8,0,9,0,25,19,21,3,9,21,1,5,21,0,2,7,21,3,7,0,19,8,8,21,1,7,17,21,1,5,21,0,2,0,10,21,1,7,17,7,22,1,6,13,14,0,25,22,1,7,12,14,21,0,1,21,3,23,16,25,21,0,2,0,10,22,1,7,13,14,21,0,2,25,21,0,1,14,0,25,22,1,9,12,25,21,1,3,0,9,21,1,4,21,3,23,16,17,0,19,16,0,20,0,8,21,3,7,21,1,3,8,21,3,4,0,18,7,21,1,4,19,7,16,22,0,3,11,21,3,27,22,1,10,13,14,21,0,3,21,3,25,0,10,7,21,1,7,17,0,14,21,3,7,0,25,8,0,9,0,25,19,21,3,9,15,250,8,16,14,21,0,1,0,17,16,21,3,8,0,18,8,22,0,4,11,14,21,1,9,21,3,1,21,3,9,15,251,8,21,0,1,17,14,21,1,6,0,17,21,1,10,17,0,20,21,0,4,7,16,25,21,0,1,0,19,16,0,20,0,9,21,3,7,21,0,1,8,21,3,4,0,18,7,21,1,3,19,7,16,25,21,0,1,0,19,16,0,20,0,10,21,3,7,21,0,2,8,7,16,25,21,0,1,0,25,0,9,21,1,3,17,21,3,18,21,0,2,17,21,3,9,21,3,74,21,0,0,21,3,7,21,0,2,0,8,0,25,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,21,3,92,21,0,1,17,0,19,16,0,20,21,2,6,0,3,16,7,16,21,3,27,22,2,6,13,14,21,2,7,25,21,0,1,21,3,79,21,2,7,17,0,20,21,2,6,21,3,8,0,18,8,7,16,25,21,1,6,0,20,21,0,1,21,3,85,16,7,16,25,21,0,2,21,3,87,16,21,3,85,0,24,17,0,7,0,90,17,14,21,0,2,21,3,87,16,0,19,16,21,3,85,0,24,17,21,3,84,21,0,2,17,25,21,0,2,0,20,21,0,1,21,3,8,0,18,8,7,16,25,21,0,1,21,3,88,21,0,2,17,0,21,21,3,82,7,16,21,3,25,21,3,91,7,16,22,0,3,11,14,21,0,3,21,3,110,16,0,20,21,0,2,21,3,8,0,18,8,7,16,21,3,25,21,3,84,7,16,22,0,4,11,14,21,0,3,21,3,86,21,3,7,21,1,4,8,21,3,9,21,0,2,21,0,1,3,2,21,3,8,21,3,49,0,18,7,8,21,3,5,15,252,8,8,16,14,21,0,4,25,21,1,4,21,3,91,21,3,7,21,0,1,8,21,3,6,21,2,5,8,21,1,3,17,21,3,88,21,3,7,0,24,8,21,3,9,21,0,1,21,3,91,0,25,17,21,3,5,21,1,5,8,8,16,25,21,0,1,0,25,21,3,8,21,3,86,8,21,3,9,15,253,8,21,0,2,17,25,21,0,2,21,3,128,16,21,3,111,16,22,0,3,11,14,21,0,1,21,3,127,21,0,2,21,3,29,21,0,3,17,17,21,3,4,21,3,92,7,0,25,17,21,3,81,0,24,17,21,3,4,21,3,29,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,126,21,3,57,8,21,0,2,21,3,29,21,0,4,17,17,21,2,2,21,3,9,21,3,84,21,3,7,21,3,92,21,3,7,21,0,4,8,8,21,3,91,21,3,2,19,8,21,0,2,21,3,87,16,17,25,21,3,2,21,0,1,21,0,4,19,25,21,0,1,21,0,5,16,21,0,4,21,0,2,17,25,21,0,1,21,1,8,0,9,0,25,17,21,4,9,21,1,9,0,9,0,25,19,21,4,9,15,254,8,8,0,25,0,9,21,0,1,17,17,25,21,0,2,0,8,21,1,3,17,22,1,4,12,14,21,0,1,0,8,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,0,8,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,0,15,21,3,6,17,22,1,8,12,14,21,1,6,21,1,11,16,14,21,1,7,21,1,13,21,1,4,17,25,21,0,2,0,8,0,25,17,22,1,4,12,0,14,21,1,6,17,0,10,0,26,17,0,8,22,1,8,13,14,21,0,2,25,21,0,1,0,8,0,25,17,22,1,7,12,0,14,21,1,5,17,0,8,22,1,8,13,14,21,0,1,25,21,0,1,21,1,10,21,4,0,21,1,8,8,21,0,2,17,25,21,0,1,0,18,21,1,7,21,1,13,21,1,4,17,17,25,0,25,0,8,21,0,1,17,21,2,4,16,22,2,6,12,21,2,5,16,22,2,7,12,14,21,2,6,25,0,25,0,8,22,1,6,13,14,21,1,6,21,1,7,21,4,7,21,4,3,21,0,0,7,8,21,4,3,21,1,3,7,3,2,21,4,0,0,15,21,4,7,21,1,5,8,8,16,22,0,3,11,14,0,24,21,0,3,16,25,21,0,1,14,0,25,0,8,22,2,6,13,25,21,0,1,14,21,1,7,0,18,21,1,9,17,22,0,3,11,14,0,24,15,255,16,22,1,10,12,14,21,0,3,25,21,0,1,0,14,21,1,10,17,25,21,0,1,0,19,16,21,2,5,21,0,1,7,22,2,6,13,25,21,4,3,21,0,2,0,3,16,7,21,1,4,3,2,21,4,0,0,15,21,4,7,0,24,8,8,22,1,4,12,25,21,0,1,21,4,25,21,4,92,7,16,21,4,84,16,22,2,3,12,14,21,0,1,21,4,25,21,4,80,7,16,21,4,84,21,1,4,17,22,1,4,12,25,0,26,21,4,76,21,0,2,17,21,4,80,16,22,0,3,11,21,4,91,21,0,1,17,22,0,4,11,21,3,2,16,22,0,5,11,14,21,0,1,21,0,4,3,2,0,18,21,0,5,17,21,2,3,21,0,2,21,4,79,0,26,17,21,4,84,21,0,5,17,21,4,91,21,0,3,17,17,25,21,0,1,14,0,26,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25,21,2,9,0,8,0,25,17,22,2,9,12,21,2,8,16,21,5,1,0,14,21,2,10,19,21,5,9,15,256,21,5,5,21,0,0,8,8,16,25,21,0,1,14,21,3,7,0,18,21,3,9,17,21,6,55,21,2,3,17,0,7,0,51,17,25]
,provide.concat([0,1,2,32,3,8,-1,5,-Infinity,Infinity,4,-2,str("Β΄: 𝕩 must be a list"),str("Mapping: Equal-rank argument shapes don\'t agree"),str("Mapping: Argument shape prefixes don\'t agree"),str("⍋𝕩: 𝕩 must have rank at least 1"),str("/: Replication argument must have rank 1"),str("/: Amounts to replicate must be natural numbers"),str("βŒ½π•©: 𝕩 must have rank at least 1"),str("π•¨βŒ½π•©: 𝕨 must consist of integers"),str("↑𝕩: 𝕩 must have rank at least 1"),str("↓𝕩: 𝕩 must have rank at least 1"),str("βŠπ•©: 𝕩 must have rank at least 1"),str("βŠπ•©: 𝕩 cannot have length 0"),str("π•¨βŠπ•©: 𝕨 must be an array"),str("π•¨βŠπ•©: Indices in 𝕨 must be integers"),str("π•¨βŠπ•©: Indices out of range"),str("⌾: Incompatible result elements in structural Under"),str(">𝕩: Elements of 𝕩 must have matching shapes"),str("βˆΎπ•©: Elements of 𝕩 must all have the same rank"),str("βˆΎπ•©: 𝕩 element rank must be at least argument rank"),str("βˆΎπ•©: 𝕩 element shapes must be compatible"),str("βˆΎπ•©: 𝕩 element trailing shapes must match"),str("βˆΎπ•©: empty 𝕩 fill rank must be at least argument rank"),str("βˆΎπ•©: 𝕩 must be an array"),str("𝕨"),str("𝕩: 𝕨 must "),str("have rank at most 1"),str("consist of integers"),str("↑"),str("↓"),str("Β« or Β»: 𝕩 must have rank at least 1"),str("Β« or Β»: 𝕨 must not have higher rank than 𝕩"),str("Β« or Β»: Rank of 𝕨 must be at least rank of 𝕩 minus 1"),str("Β« or Β»: 𝕨 must share 𝕩\'s major cell shape"),str("𝕨↕𝕩: 𝕨 must have rank at most 1"),str("𝕨↕𝕩: Length of 𝕨 must be at most rank of 𝕩"),str("𝕨↕𝕩: 𝕨 must consist of natural numbers"),str("𝕨↕𝕩: Window length 𝕨 must be at most axis length plus one"),str("First-axis primitive: 𝕩 must have rank at least 1"),str("Multi-axis primitive: 𝕨 must have rank at most 1"),str("Multi-axis primitive: Length of 𝕨 must be at most rank of 𝕩"),str("β‰₯: No monadic form"),str("≀: No monadic form"),str("Β΄: Identity not found"),str("𝕨β₯Šπ•©: 𝕨 must have rank at most 1"),str("𝕨β₯Šπ•©: 𝕨 must consist of natural numbers"),str("𝕨β₯Šπ•©: Can\'t compute axis length when rest of shape is empty"),str("𝕨β₯Šπ•©: 𝕨 must consist of natural numbers or ∘ ⌊ ⌽ ↑"),str("𝕨β₯Šπ•©: Shape must be exact when reshaping with ∘"),str("↕𝕩: 𝕩 must consist of natural numbers"),str("↕𝕩: 𝕩 must be a number or list"),str("βŽ‰ or βš‡: 𝔽 result must have rank at most 1"),str("βŽ‰ or βš‡: 𝔽 result must have 1 to 3 elements"),str("βŽ‰ or βš‡: 𝔽 result must consist of integers"),str("˝: 𝕩 must have rank at least 1"),str("˝: Identity does not exist"),str("π•¨βˆΎπ•©: Rank of 𝕨 and 𝕩 must differ by at most 1"),str("π•¨βˆΎπ•©: Cell shapes of 𝕨 and 𝕩 must match"),str("𝕨/𝕩: Lengths of components of 𝕨 must match 𝕩"),str("βŠ”: Grouping argument must consist of integers"),str("βŠ”: Grouping argument values cannot be less than Β―1"),str("βŠ”π•©: 𝕩 must be a list"),str("π•¨βŠ”π•©: 𝕩 must be an array"),str("π•¨βŠ”π•©: Compound 𝕨 must be a list"),str("π•¨βŠ”π•©: Total rank of 𝕨 must be at most rank of 𝕩"),str("π•¨βŠ”π•©: Lengths of components of 𝕨 must be compatible with 𝕩"),str("π•¨βŠ‘π•©: Indices in compound 𝕨 must be lists"),str("π•¨βŠ‘π•©: Index length in 𝕨 must match rank of 𝕩"),str("π•¨βŠ‘π•©: Indices in 𝕨 must consist of integers"),str("π•¨βŠ‘π•©: Index out of range"),str("⍋ or ⍒: Rank of 𝕨 must be at least 1"),str("⍋ or ⍒: Rank of 𝕩 must be at least cell rank of 𝕨"),str("⍋ or ⍒: 𝕨 must be sorted"),str("pβŠπ•© or π•¨βˆŠp: p must have rank at least 1"),str("p⊐n or n∊p: Rank of n must be at least cell rank of p"),str("βˆŠπ•© or βŠπ•©: 𝕩 must have rank at least 1"),str("⍷𝕩: Rank of 𝕨 cannot exceed rank of 𝕩"),str("𝕨⍉𝕩: 𝕨 must have rank at most 1"),str("𝕨⍉𝕩: Length of 𝕨 must not exceed rank of 𝕩"),str("𝕨⍉𝕩: 𝕨 must consist of natural numbers"),str("𝕨⍉𝕩: Skipped result axis"),str("βŠ’: Rank of 𝕨 must be at least 1"),str("βŠ’: Rank of 𝕩 must be at least cell rank of 𝕨"),str("⍟: Repetition numbers in 𝕨 must be integers"),str("⁼: Inverse failed"),str("⁼: Inverse does not exist"),str("⁼: Inverse not found"),str("Cannot currently invert blocks"),str("Cannot invert modifier")])
- ,[[0,1,0,177],[2,0,4126,6],[0,0,4153,3],[0,0,4157,3],[0,0,4161,3],[1,0,4165,5],[1,0,4173,5],[2,0,4191,6],[2,0,4206,6],[2,0,4225,6],[2,0,4247,6],[2,0,4269,6],[0,0,4301,3],[0,0,4313,3],[0,0,4322,3],[0,0,4328,3],[0,0,4345,3],[0,0,4354,3],[1,0,4363,9],[0,0,4476,3],[0,0,4516,4],[0,0,4592,5],[0,0,4667,3],[1,1,4684,4],[1,1,4757,3],[0,0,4835,3],[0,0,4846,5],[2,0,4930,12],[0,0,5141,4],[0,0,5195,6],[0,0,5285,7],[0,0,5414,4],[0,0,5475,4],[0,0,5577,3],[0,0,5645,4],[1,1,5722,2],[0,0,5755,3],[0,0,5805,4],[0,0,5947,4],[2,1,6047,3],[1,0,6090,5],[0,0,6128,3],[2,0,6132,11],[0,0,6263,3],[0,0,6271,6],[0,0,6298,5],[0,0,6319,6],[1,0,6346,19],[0,0,6852,3],[0,0,6879,3],[0,0,6905,3],[2,1,6944,3],[0,0,7013,4],[0,0,7110,7],[0,0,7157,14],[0,0,7391,5],[1,1,7488,8],[1,0,7541,6],[1,1,7649,2],[0,0,7707,5],[0,0,7869,5],[0,0,8006,7],[0,0,8175,3],[0,0,8234,4],[1,0,8301,5],[2,1,8318,4],[0,0,8354,3],[0,0,8381,3],[0,0,8403,3],[0,0,8425,3],[0,0,8462,3],[0,0,8481,9],[0,0,8638,5],[0,0,8672,3],[1,1,8767,2],[2,0,8836,10],[2,0,8895,8],[1,0,9088,7],[0,0,9155,8],[0,0,9391,5],[0,0,9481,3],[1,0,9515,8],[0,0,9614,4],[0,0,9733,7],[0,0,10085,4],[0,0,10298,3],[0,0,10316,4],[1,0,10388,9],[1,1,10457,3],[1,0,10481,14],[1,1,10924,4],[1,0,10978,6],[0,0,11122,4],[0,0,11195,3],[0,0,11269,3],[0,0,11324,4],[0,0,11453,4],[0,0,11573,4],[2,0,11694,6],[1,1,11722,2],[2,0,11730,14],[2,0,11917,7],[0,0,11958,6],[0,0,12108,3],[2,1,12178,4],[0,0,12261,3],[0,0,12299,5],[0,0,12443,3],[0,0,12490,3],[0,0,12516,3],[1,0,12603,5],[2,0,12631,6],[0,0,12646,3],[0,0,12654,3],[1,1,12675,2],[0,0,12704,3],[0,0,12740,3],[0,0,12788,3],[0,0,12842,3],[1,1,12929,2],[0,0,12962,3],[0,0,12973,4],[0,0,13010,3],[0,0,13025,3],[0,0,13054,3],[0,0,13069,3],[0,0,13087,3],[0,0,13102,3],[0,0,13112,3],[0,0,13169,7],[0,0,13248,3],[1,1,13273,2],[0,0,13355,3],[1,1,13404,2],[1,1,13408,2],[0,0,13412,3],[0,0,13424,3],[0,0,13447,3],[1,0,13468,6],[1,0,13585,11],[1,0,13806,5],[0,0,13821,3],[0,0,13835,3],[0,0,13849,3],[1,0,13894,8],[0,0,14032,8],[0,0,14199,3],[0,0,14225,3],[0,0,14235,3],[0,0,14252,9],[0,0,14435,6],[0,0,14510,3],[2,0,14518,11],[1,0,14595,5],[0,0,14626,3],[0,0,14636,3],[1,0,14646,5],[0,0,14679,4],[0,0,14690,4],[0,0,14701,3],[0,0,14709,3],[0,0,14721,3],[0,0,14729,3],[1,0,14773,7],[0,0,14799,9],[1,0,15085,5],[0,0,15101,7],[0,0,15268,11],[0,0,15510,8],[0,0,15822,3],[0,0,15850,5],[0,0,15945,8],[0,0,16200,3],[0,0,16247,3],[0,0,16267,3],[1,0,16333,6],[0,0,16486,7],[0,0,16624,5],[0,0,16701,3],[0,0,16724,3],[0,0,16735,3],[0,0,16756,3],[0,0,16787,3],[0,0,16825,6],[0,0,16930,6],[0,0,16979,4],[0,0,17008,3],[0,0,17027,4],[1,1,17204,2],[0,0,17208,3],[0,0,17251,3],[0,0,17262,3],[0,0,17270,3],[0,0,17292,3],[0,0,17300,3],[0,0,17312,3],[0,0,17331,3],[0,0,17356,3],[0,0,17383,3],[1,0,17401,5],[1,0,17412,5],[0,0,17423,14],[0,0,17593,3],[0,0,17613,3],[0,0,17628,3],[0,0,17636,8],[0,0,17707,3],[0,0,17729,5],[0,0,17758,11],[2,0,17970,6],[0,0,18009,3],[0,0,18080,3],[0,0,18112,3],[1,0,18123,5],[1,1,18134,2],[2,1,18153,3],[0,0,18175,3],[0,0,18204,4],[0,0,18227,3],[1,0,18260,5],[0,0,18286,3],[0,0,18356,3],[0,0,18370,3],[0,0,18381,5],[0,0,18517,3],[0,0,18547,3],[0,0,18567,3],[0,0,18621,3],[0,0,18656,3],[0,0,18680,3],[0,0,18695,3],[0,0,18738,3],[0,0,18755,5],[0,0,18865,3],[0,0,18920,3],[0,0,18943,5],[1,0,19072,5],[2,0,19083,6],[0,0,19098,3],[0,0,19137,3],[0,0,19220,3],[0,0,19254,3],[0,0,19283,3],[0,0,19301,3],[0,0,19318,3],[0,0,19347,4],[0,0,19408,3],[0,0,19421,4],[0,0,19453,3],[0,0,19463,3],[0,0,19481,3],[0,0,19513,3],[0,0,19556,6],[0,0,19635,3],[0,0,19662,3],[0,0,19702,3]]
+ ,[[0,1,0,177],[2,0,4125,6],[0,0,4152,3],[0,0,4156,3],[0,0,4160,3],[1,0,4164,5],[1,0,4172,5],[2,0,4190,6],[2,0,4205,6],[2,0,4224,6],[2,0,4246,6],[2,0,4268,6],[0,0,4300,3],[0,0,4312,3],[0,0,4321,3],[0,0,4327,3],[0,0,4344,3],[0,0,4353,3],[1,0,4362,9],[0,0,4475,3],[0,0,4515,4],[0,0,4591,5],[0,0,4666,3],[1,1,4683,4],[1,1,4756,3],[0,0,4834,3],[0,0,4845,5],[2,0,4929,12],[0,0,5140,4],[0,0,5194,6],[0,0,5284,3],[0,0,5309,7],[0,0,5438,4],[0,0,5499,4],[0,0,5601,3],[0,0,5669,4],[1,1,5746,2],[0,0,5779,3],[0,0,5829,4],[0,0,5971,4],[2,1,6071,3],[1,0,6114,5],[0,0,6152,3],[2,0,6156,11],[0,0,6287,3],[0,0,6295,6],[0,0,6322,5],[0,0,6343,6],[1,0,6370,19],[0,0,6876,3],[0,0,6903,3],[0,0,6929,3],[2,1,6968,3],[0,0,7037,4],[0,0,7134,7],[0,0,7181,14],[0,0,7415,5],[1,1,7512,8],[1,0,7565,6],[1,1,7673,2],[0,0,7731,5],[0,0,7893,5],[0,0,8030,7],[0,0,8199,3],[0,0,8258,4],[1,0,8325,5],[2,1,8342,4],[0,0,8385,3],[0,0,8412,3],[0,0,8434,3],[0,0,8456,3],[0,0,8493,3],[0,0,8512,9],[0,0,8669,5],[0,0,8703,3],[1,1,8798,2],[2,0,8867,10],[2,0,8926,8],[1,0,9119,7],[0,0,9186,8],[0,0,9422,5],[0,0,9512,3],[1,0,9546,8],[0,0,9645,4],[0,0,9764,7],[0,0,10116,4],[0,0,10329,3],[0,0,10347,4],[1,0,10419,9],[1,1,10488,3],[1,0,10512,14],[1,1,10955,4],[1,0,11009,6],[0,0,11153,4],[0,0,11226,3],[0,0,11300,3],[0,0,11355,4],[0,0,11484,4],[0,0,11604,4],[2,0,11725,6],[1,1,11753,2],[2,0,11761,14],[2,0,11948,7],[0,0,11989,6],[0,0,12139,3],[2,1,12209,4],[0,0,12292,3],[0,0,12330,5],[0,0,12474,3],[0,0,12521,3],[0,0,12547,3],[1,0,12634,5],[2,0,12662,6],[0,0,12677,3],[0,0,12685,3],[1,1,12706,2],[0,0,12735,3],[0,0,12771,3],[0,0,12819,3],[0,0,12873,3],[1,1,12960,2],[0,0,12993,3],[0,0,13004,4],[0,0,13041,3],[0,0,13056,3],[0,0,13085,3],[0,0,13100,3],[0,0,13118,3],[0,0,13133,3],[0,0,13143,3],[0,0,13200,7],[0,0,13279,3],[1,1,13304,2],[0,0,13386,3],[1,1,13435,2],[1,1,13439,2],[0,0,13443,3],[0,0,13455,3],[0,0,13478,3],[1,0,13499,6],[1,0,13616,11],[1,0,13837,5],[0,0,13852,3],[0,0,13866,3],[0,0,13880,3],[1,0,13925,8],[0,0,14063,8],[0,0,14230,3],[0,0,14256,3],[0,0,14266,3],[0,0,14283,9],[0,0,14466,6],[0,0,14541,3],[2,0,14549,11],[1,0,14626,5],[0,0,14657,3],[0,0,14667,3],[1,0,14677,5],[0,0,14710,4],[0,0,14721,4],[0,0,14732,3],[0,0,14740,3],[0,0,14752,3],[0,0,14760,3],[1,0,14804,7],[0,0,14830,9],[1,0,15116,5],[0,0,15132,7],[0,0,15299,11],[0,0,15541,8],[0,0,15853,3],[0,0,15881,5],[0,0,15976,8],[0,0,16231,3],[0,0,16278,3],[0,0,16298,3],[1,0,16364,6],[0,0,16517,7],[0,0,16655,5],[0,0,16732,3],[0,0,16755,3],[0,0,16766,3],[0,0,16787,3],[0,0,16818,3],[0,0,16856,6],[0,0,16961,6],[0,0,17010,4],[0,0,17039,3],[0,0,17058,4],[1,1,17235,2],[0,0,17239,3],[0,0,17282,3],[0,0,17293,3],[0,0,17301,3],[0,0,17323,3],[0,0,17331,3],[0,0,17343,3],[0,0,17362,3],[0,0,17387,3],[0,0,17414,3],[1,0,17432,5],[1,0,17443,5],[0,0,17454,14],[0,0,17624,3],[0,0,17644,3],[0,0,17659,3],[0,0,17667,8],[0,0,17738,3],[0,0,17760,5],[0,0,17789,11],[2,0,18001,6],[0,0,18040,3],[0,0,18111,3],[0,0,18143,3],[1,0,18154,5],[1,1,18165,2],[2,1,18184,3],[0,0,18206,3],[0,0,18235,4],[0,0,18258,3],[1,0,18291,5],[0,0,18317,3],[0,0,18387,3],[0,0,18401,3],[0,0,18412,5],[0,0,18548,3],[0,0,18578,3],[0,0,18598,3],[0,0,18652,3],[0,0,18687,3],[0,0,18711,3],[0,0,18726,3],[0,0,18769,3],[0,0,18786,5],[0,0,18896,3],[0,0,18951,3],[0,0,18974,5],[1,0,19103,5],[2,0,19114,6],[0,0,19129,3],[0,0,19168,3],[0,0,19251,3],[0,0,19285,3],[0,0,19314,3],[0,0,19332,3],[0,0,19349,3],[0,0,19378,4],[0,0,19439,3],[0,0,19452,4],[0,0,19484,3],[0,0,19494,3],[0,0,19512,3],[0,0,19544,3],[0,0,19587,6],[0,0,19666,3],[0,0,19693,3],[0,0,19733,3]]
);
// Compiler
diff --git a/docs/spec/primitive.html b/docs/spec/primitive.html
index 02b856be..74fb79d1 100644
--- a/docs/spec/primitive.html
+++ b/docs/spec/primitive.html
@@ -119,7 +119,7 @@
<p><strong>Merge</strong> (<code><span class='Function'>&gt;</span></code>) combines the outer axes of an array of arrays with inner axes: it requires that all elements of its argument have the same shape, and creates an array such that <code><span class='Paren'>(</span><span class='Value'>i</span><span class='Function'>∾</span><span class='Value'>j</span><span class='Paren'>)</span><span class='Function'>βŠ‘&gt;</span><span class='Value'>𝕩</span></code> is <code><span class='Value'>i</span><span class='Function'>βŠ‘</span><span class='Value'>j</span><span class='Function'>βŠ‘</span><span class='Value'>𝕩</span></code>. It also accepts atom elements of <code><span class='Value'>𝕩</span></code>, converting them to unit arrays, or an atom argument, which is returned unchanged. <strong>Solo</strong> and <strong>Couple</strong> (<code><span class='Function'>≍</span></code>) turn one or two arguments into major cells of the result and can be defined easily in terms of Merge.</p>
<p><strong>Join To</strong> (<code><span class='Function'>∾</span></code>) combines its two arguments along an existing initial axis, unless both arguments are units, in which case it creates an axis and is identical to Couple (<code><span class='Function'>≍</span></code>). The arguments must differ in rank by at most 1, and the result rank is equal to the maximum of 1 and the higher argument rank. Each argument with rank less than the result, and each major cell of an argument with rank equal to it, becomes a major cell of the result, with cells from the left argument placed before those from the right. <strong>Join</strong> (<code><span class='Function'>∾</span></code>) generalizes the equal-rank subset of this behavior to an array of values instead of just two. The argument must be an array (unlike Merge), and its elements must all the same rank, which is at least the argument rank. Atom elements are treated as unit arrays. Then &quot;outer&quot; argument axes are matched up with leading &quot;inner&quot; element axes, and elements are joined along these axes. In order to allow this, the length of an element along a particular axis must depend only on the position along the corresponding axis in the argument. An empty argument to Join is return unchanged, as though the element rank is equal to the argument rank.</p>
<p><strong>Deshape</strong> (<code><span class='Function'>β₯Š</span></code>) differs from the provided function (which returns the element list of an array) only in that it accepts an atom, returning a one-element list containing it. <strong>Reshape</strong> (<code><span class='Function'>β₯Š</span></code>) is extended in numerous ways. It accepts any list of natural numbers (including as a unit array or atom) for the left argument and any right argument; <code><span class='Value'>𝕩</span></code> is deshaped first so that it is treated as a list of elements. These elements are repeated cyclically to fill the result array in ravel order. If <code><span class='Value'>𝕩</span></code> is empty but the result is not, then the result consists of fill elements for <code><span class='Value'>𝕩</span></code>. Furthermore, at most one element of <code><span class='Value'>𝕨</span></code> can be a &quot;length code&quot;: one of the primitives <code><span class='Modifier2'>∘</span><span class='Function'>βŒŠβŒ½β†‘</span></code>. In this case, a target length is computed from the number of elements in <code><span class='Value'>𝕩</span></code> divided by the product of the other elements of <code><span class='Value'>𝕨</span></code> (which must not be zero). If the target length is an integer then it is used directly for the length code. Otherwise, an error is given if the length code is <code><span class='Modifier2'>∘</span></code>, and the target length is rounded down if the code is <code><span class='Function'>⌊</span></code> and up if it's <code><span class='Function'>⌽</span></code> or <code><span class='Function'>↑</span></code>. With code <code><span class='Function'>⌽</span></code>, elements are repeated cyclically as usual, but with code <code><span class='Function'>↑</span></code>, the extra elements after each argument element is used are fill values for <code><span class='Value'>𝕩</span></code>.</p>
-<p><strong>Transpose</strong> (<code><span class='Function'>⍉</span></code>) reorders axes of its argument to place the first axis last; if the argument has one or fewer axes then it's returned unchanged. <strong>Reorder Axes</strong> (<code><span class='Function'>⍉</span></code>) requires the left argument to be a list or unit of natural numbers, with length at most the rank of the right argument. This list is extended to match the right argument rank exactly by repeatedly appending the least unused natural number (for example, given <code><span class='Number'>1</span><span class='Ligature'>β€Ώ</span><span class='Number'>3</span><span class='Ligature'>β€Ώ</span><span class='Number'>0</span><span class='Ligature'>β€Ώ</span><span class='Number'>0</span></code>, <code><span class='Number'>2</span></code> is appended). After extension, it specifies a result axis for each axis of the right argument. There must be no gaps in the list: that is, with the result rank equal to one plus the greatest value present, every result axis must appear at least once. Now each argument axis is &quot;sent to&quot; the specified result axis: in terms of indices, <code><span class='Value'>i</span><span class='Function'>βŠ‘</span><span class='Value'>𝕨</span><span class='Function'>⍉</span><span class='Value'>𝕩</span></code> is <code><span class='Paren'>(</span><span class='Value'>𝕨</span><span class='Function'>⊏</span><span class='Value'>i</span><span class='Paren'>)</span><span class='Function'>βŠ‘</span><span class='Value'>𝕩</span></code> if <code><span class='Value'>𝕨</span></code> is complete. If multiple argument axes correspond to the same result axis, then a diagonal is taken, and it's as long as the shortest of those argument axes. While Transpose does not enclose an atom right argument, Reorder Axes does, so that its result is always an array.</p>
+<p><strong>Transpose</strong> (<code><span class='Function'>⍉</span></code>) reorders axes of its argument to place the first axis last; if the argument has one or fewer axes then it's enclosed if it's an atom and otherwise returned unchanged. <strong>Reorder Axes</strong> (<code><span class='Function'>⍉</span></code>) requires the left argument to be a list or unit of natural numbers, with length at most the rank of the right argument. This list is extended to match the right argument rank exactly by repeatedly appending the least unused natural number (for example, given <code><span class='Number'>1</span><span class='Ligature'>β€Ώ</span><span class='Number'>3</span><span class='Ligature'>β€Ώ</span><span class='Number'>0</span><span class='Ligature'>β€Ώ</span><span class='Number'>0</span></code>, <code><span class='Number'>2</span></code> is appended). After extension, it specifies a result axis for each axis of the right argument. There must be no gaps in the list: that is, with the result rank equal to one plus the greatest value present, every result axis must appear at least once. Now each argument axis is &quot;sent to&quot; the specified result axis: in terms of indices, <code><span class='Value'>i</span><span class='Function'>βŠ‘</span><span class='Value'>𝕨</span><span class='Function'>⍉</span><span class='Value'>𝕩</span></code> is <code><span class='Paren'>(</span><span class='Value'>𝕨</span><span class='Function'>⊏</span><span class='Value'>i</span><span class='Paren'>)</span><span class='Function'>βŠ‘</span><span class='Value'>𝕩</span></code> if <code><span class='Value'>𝕨</span></code> is complete. If multiple argument axes correspond to the same result axis, then a diagonal is taken, and it's as long as the shortest of those argument axes. Like Transpose, Reorder Axes encloses <code><span class='Value'>𝕩</span></code> if it's an atom, so that its result is always an array.</p>
<h3 id="indices-and-selection">Indices and selection</h3>
<p>Each element in an array <code><span class='Value'>s</span><span class='Function'>β₯Š</span><span class='Value'>e</span></code> is associated with an <em>index</em>, which is a list of natural numbers <code><span class='Value'>i</span></code> such that <code><span class='Function'>∧</span><span class='Modifier'>Β΄</span><span class='Value'>i</span><span class='Function'>&lt;</span><span class='Value'>s</span></code>. The list of all indices, which corresponds to the element list <code><span class='Value'>e</span></code>, contains all such lists <code><span class='Value'>i</span></code> in lexicographic order. That is, index <code><span class='Value'>i</span></code> comes before <code><span class='Value'>j</span></code> exactly when the two indices are not the same, and <code><span class='Value'>i</span></code> has the smaller value at the first position where they are unequal. The index of an element along a particular axis <code><span class='Value'>a</span></code> is the value <code><span class='Value'>a</span><span class='Function'>βŠ‘</span><span class='Value'>i</span></code>.</p>
<p><strong>Pick</strong> (<code><span class='Function'>βŠ‘</span></code>) is extended to array left arguments. In this case, it requires every depth-1 array in the nested structure of <code><span class='Value'>𝕨</span></code> to be a valid index list for <code><span class='Value'>𝕩</span></code>, and every atom to be contained in one of these lists. The result is <code><span class='Value'>𝕨</span></code> with each index list replaced by the element of <code><span class='Value'>𝕩</span></code> at that index. In the simple case where <code><span class='Value'>𝕨</span></code> itself is an index list, the result is the element of <code><span class='Value'>𝕩</span></code> at index <code><span class='Value'>𝕨</span></code>.</p>
@@ -131,11 +131,11 @@
<p><strong>Indices</strong> (<code><span class='Function'>/</span></code>) applies to a list of natural numbers, and returns a list of natural numbers. The result contains <code><span class='Value'>i</span><span class='Function'>βŠ‘</span><span class='Value'>𝕩</span></code> copies of each natural number index <code><span class='Value'>i</span></code> for <code><span class='Value'>𝕩</span></code>, in increasing order.</p>
<h3 id="structural-manipulation">Structural manipulation</h3>
<p>Monadic structural functions work on the first axis of the argument, so they require it to have rank at least 1. <strong>Reverse</strong> (<code><span class='Function'>⌽</span></code>) reverses the ordering of the major cells of <code><span class='Value'>𝕩</span></code>. <strong>Nudge</strong> (<code><span class='Function'>Β»</span></code>) shifts them forward, removing the last and placing a major cell made up of fill elements at the beginning, while <strong>Nudge Back</strong> (<code><span class='Function'>Β«</span></code>) does the same in the reverse direction, so it removes the first cell and places fills at the end. <strong>Prefixes</strong> (<code><span class='Function'>↑</span></code>) and <strong>Suffixes</strong> (<code><span class='Function'>↓</span></code>) each return lists with length one higher than <code><span class='Value'>𝕩</span></code>, whose elements are arrays with the same rank as <code><span class='Value'>𝕩</span></code>. For Prefixes, the element of the result at index <code><span class='Value'>i</span></code> contains the first <code><span class='Value'>i</span></code> major cells of <code><span class='Value'>𝕩</span></code> in order, and for Suffixes, it contains all but these major cells.</p>
-<p>The remainder of the functions discussed in this section are dyadic. There are four functions for which <code><span class='Value'>𝕨</span></code> is a list of whole numbersβ€”but an atomic number or enclosed number is also permitted, and treated as a 1-element listβ€”and its elements are matched with leading axes of <code><span class='Value'>𝕩</span></code>. These functions independently manipulate each axis: one way to define such a process is to consider lists running along the axis, where every element of the index is fixed except one. A change to this axis retains the fixed indices, but can move elements from one location to another along the variable index, add fill elements, or split the axis into two axes. A change to a different axis can rearrange these lists along the original axis, but can't affect the placement of elements within them. In the reference implementations, working on leading axes is accomplished using the Cells (<code><span class='Modifier'>˘</span></code>) modifier recursively, so that action on the first axes doesn't use Cells, on the next is affected by Cells once, then twice, and so on.</p>
+<p>The remainder of the functions discussed in this section are dyadic. For all of these, an atom value for <code><span class='Value'>𝕩</span></code> is treated as an array by enclosing it before acting, so that the result is never an atom. There are four functions for which <code><span class='Value'>𝕨</span></code> is a list of whole numbersβ€”but an atomic number or enclosed number is also permitted, and treated as a 1-element listβ€”and its elements are matched with leading axes of <code><span class='Value'>𝕩</span></code>. These functions independently manipulate each axis: one way to define such a process is to consider lists running along the axis, where every element of the index is fixed except one. A change to this axis retains the fixed indices, but can move elements from one location to another along the variable index, add fill elements, or split the axis into two axes. A change to a different axis can rearrange these lists along the original axis, but can't affect the placement of elements within them. In the reference implementations, working on leading axes is accomplished using the Cells (<code><span class='Modifier'>˘</span></code>) modifier recursively, so that action on the first axes doesn't use Cells, on the next is affected by Cells once, then twice, and so on.</p>
<p><strong>Rotate</strong> (<code><span class='Function'>⌽</span></code>) is the simplest of these four functions: each element of <code><span class='Value'>𝕨</span></code> gives an amount to rotate the corresponding axis, where a rotation of <code><span class='Value'>r</span></code> moves the element at index <code><span class='Value'>i</span><span class='Function'>+</span><span class='Value'>r</span></code> to <code><span class='Value'>i</span></code> when all indices are taken modulo the length of the axis. <strong>Windows</strong> (<code><span class='Function'>↕</span></code>) splits each axis of <code><span class='Value'>𝕩</span></code> that corresponds to an element of <code><span class='Value'>𝕨</span></code> in two, so that the result has one set of axes corresponding to elements of <code><span class='Value'>𝕨</span></code>, then another, then the unchanged trailing axes. The second set of axes has lengths given by <code><span class='Value'>𝕨</span></code> (which must consist of natural numbers), while the first has lengths <code><span class='Value'>s</span><span class='Function'>Β¬</span><span class='Value'>𝕨</span></code>, where <code><span class='Value'>s</span></code> contains the lengths of leading axes of <code><span class='Value'>𝕩</span></code>. Position <code><span class='Value'>i</span></code> in the first set of axes and <code><span class='Value'>j</span></code> in the second corresponds to <code><span class='Value'>i</span><span class='Function'>+</span><span class='Value'>j</span></code> in the argument, so that fixing one of these positions and varying the other gives a slice of the argument. In both Rotate and Windows, the length of <code><span class='Value'>𝕨</span></code> is at most the rank of <code><span class='Value'>𝕩</span></code>.</p>
-<p><strong>Take</strong> (<code><span class='Function'>↑</span></code>) offers several possibilities. The absolute value of <code><span class='Value'>𝕨</span></code> gives the final lengths of the axes in the result. It may be positive to indicate that the axis aligns with <code><span class='Value'>𝕩</span></code> at the beginning, or negative to indicate it aligns at the end. A zero value gives no result elements, so there is no need to consider alignment. If the absolute value of an element of <code><span class='Value'>𝕨</span></code> is smaller than or equal to the corresponding length in <code><span class='Value'>𝕩</span></code>, then the first or last few elements are taken along that axis. If it is larger, then instead fill elements are added to the end (if positive) or beginning (if negative) to make up the difference in length. <strong>Drop</strong> (<code><span class='Function'>↓</span></code>) gives <code><span class='Value'>𝕨</span></code> a similar meaning, but excludes all elements that Take includes (maintaining the order of the retained ones). The result of Drop never uses fill elements. In a case where Take would use fill elements, it would include all positions from <code><span class='Value'>𝕩</span></code>, so Drop should include none of them, and the result will have length <code><span class='Number'>0</span></code> for that axis. Take and Drop are extended to allow an argument with length greater than the rank of <code><span class='Value'>𝕩</span></code>. In this case leading length-1 axes are added to <code><span class='Value'>𝕩</span></code> so that its rank matches <code><span class='Value'>𝕨</span></code> before taking or dropping. If <code><span class='Value'>𝕩</span></code> is an atom, it is always enclosed to an array first, even if <code><span class='Value'>𝕨</span></code> is empty.</p>
+<p><strong>Take</strong> (<code><span class='Function'>↑</span></code>) offers several possibilities. The absolute value of <code><span class='Value'>𝕨</span></code> gives the final lengths of the axes in the result. It may be positive to indicate that the axis aligns with <code><span class='Value'>𝕩</span></code> at the beginning, or negative to indicate it aligns at the end. A zero value gives no result elements, so there is no need to consider alignment. If the absolute value of an element of <code><span class='Value'>𝕨</span></code> is smaller than or equal to the corresponding length in <code><span class='Value'>𝕩</span></code>, then the first or last few elements are taken along that axis. If it is larger, then instead fill elements are added to the end (if positive) or beginning (if negative) to make up the difference in length. <strong>Drop</strong> (<code><span class='Function'>↓</span></code>) gives <code><span class='Value'>𝕨</span></code> a similar meaning, but excludes all elements that Take includes (maintaining the order of the retained ones). The result of Drop never uses fill elements. In a case where Take would use fill elements, it would include all positions from <code><span class='Value'>𝕩</span></code>, so Drop should include none of them, and the result will have length <code><span class='Number'>0</span></code> for that axis. Take and Drop are extended to allow an argument with length greater than the rank of <code><span class='Value'>𝕩</span></code>. In this case leading length-1 axes are added to <code><span class='Value'>𝕩</span></code> so that its rank matches <code><span class='Value'>𝕨</span></code> before taking or dropping.</p>
<p><strong>Replicate</strong> (<code><span class='Function'>/</span></code>) is similar to the four dyadic structural functions above, but <code><span class='Value'>𝕨</span></code> gives a list of containing <em>lists</em> of natural numbers, or plain or enclosed natural numbers, instead of a simple list. If <code><span class='Value'>𝕨</span></code> has depth less than <code><span class='Number'>2</span></code>, it's considered to be a single value corresponding to one axis of <code><span class='Value'>𝕩</span></code>, while if it has depth <code><span class='Number'>2</span></code> then it's a list of values. If <code><span class='Value'>𝕨</span></code> is the empty list <code><span class='Bracket'>⟨⟩</span></code> then it is defined to be in the second case despite having a depth of <code><span class='Number'>1</span></code>. On a single axis of <code><span class='Value'>𝕩</span></code> the corresponding value <code><span class='Value'>r</span></code> from <code><span class='Value'>𝕨</span></code> is either a list or a unit: if it's a unit then it is repeated to match the length of that axis of <code><span class='Value'>𝕩</span></code>, and if it's a list it must already have the same length as that axis. Each number in <code><span class='Value'>r</span></code> now specifies the number of times to repeat the corresponding position in <code><span class='Value'>𝕩</span></code>. This is equivalent to calling Indices on <code><span class='Value'>r</span></code> and using the result for selection.</p>
-<p><strong>Shift Before</strong> (<code><span class='Function'>Β»</span></code>) and <strong>Shift After</strong> (<code><span class='Function'>Β«</span></code>) are derived from Join To and share most of its behavior. The difference is that only a portion of the result of Join To is returned, matching the length of <code><span class='Value'>𝕩</span></code>. This portion comes from the beginning for Shift Before and the end for Shift After. The only difference in conditions between the shift functions and Join To is that Join To allows <code><span class='Value'>𝕩</span></code> to have smaller rank than <code><span class='Value'>𝕨</span></code> while for shifting it must have the same or greater rank.</p>
+<p><strong>Shift Before</strong> (<code><span class='Function'>Β»</span></code>) and <strong>Shift After</strong> (<code><span class='Function'>Β«</span></code>) are derived from Join To and share most of its behavior. The difference is that only a portion of the result of Join To is returned, matching the length of <code><span class='Value'>𝕩</span></code>. This portion comes from the beginning for Shift Before and the end for Shift After. The only difference in conditions between the shift functions and Join To is that Join To allows the result to have higher rank than <code><span class='Value'>𝕩</span></code>. Shifts do not, so the rank of <code><span class='Value'>𝕩</span></code> be at least 1 and at least as high as <code><span class='Value'>𝕨</span></code>.</p>
<h3 id="searching">Searching</h3>
<p><strong>Match</strong> (<code><span class='Function'>≑</span></code>) indicates whether two values are considered equivalent. It always returns 0 or 1, and never causes an error. If both arguments are atoms then it is identical to <code><span class='Function'>=</span></code>, and if one is an atom and the other an array then it returns 0. If both arguments are arrays then it returns 1 only if they have the same shape and all pairs of corresponding elements match. Fill elements aren't taken into account, so that arrays that match might still differ in behavior. <strong>Not Match</strong> simply returns the complement of Match, <code><span class='Function'>¬≑</span></code>.</p>
<p>Monadic search functions compare the major cells of <code><span class='Value'>𝕩</span></code> to each other. <code><span class='Value'>𝕩</span></code> must have rank at least 1. Except for Deduplicate (<code><span class='Function'>⍷</span></code>), the result is a list of numbers with the same length as <code><span class='Value'>𝕩</span></code>.</p>
diff --git a/spec/primitive.md b/spec/primitive.md
index 38c06d00..7fb3cd83 100644
--- a/spec/primitive.md
+++ b/spec/primitive.md
@@ -145,7 +145,7 @@ The iteration modifiers `βŒœΒ¨βš‡Λ˜βŽ‰` process elements or cells in index order
**Deshape** (`β₯Š`) differs from the provided function (which returns the element list of an array) only in that it accepts an atom, returning a one-element list containing it. **Reshape** (`β₯Š`) is extended in numerous ways. It accepts any list of natural numbers (including as a unit array or atom) for the left argument and any right argument; `𝕩` is deshaped first so that it is treated as a list of elements. These elements are repeated cyclically to fill the result array in ravel order. If `𝕩` is empty but the result is not, then the result consists of fill elements for `𝕩`. Furthermore, at most one element of `𝕨` can be a "length code": one of the primitives `βˆ˜βŒŠβŒ½β†‘`. In this case, a target length is computed from the number of elements in `𝕩` divided by the product of the other elements of `𝕨` (which must not be zero). If the target length is an integer then it is used directly for the length code. Otherwise, an error is given if the length code is `∘`, and the target length is rounded down if the code is `⌊` and up if it's `⌽` or `↑`. With code `⌽`, elements are repeated cyclically as usual, but with code `↑`, the extra elements after each argument element is used are fill values for `𝕩`.
-**Transpose** (`⍉`) reorders axes of its argument to place the first axis last; if the argument has one or fewer axes then it's returned unchanged. **Reorder Axes** (`⍉`) requires the left argument to be a list or unit of natural numbers, with length at most the rank of the right argument. This list is extended to match the right argument rank exactly by repeatedly appending the least unused natural number (for example, given `1β€Ώ3β€Ώ0β€Ώ0`, `2` is appended). After extension, it specifies a result axis for each axis of the right argument. There must be no gaps in the list: that is, with the result rank equal to one plus the greatest value present, every result axis must appear at least once. Now each argument axis is "sent to" the specified result axis: in terms of indices, `iβŠ‘π•¨β‰π•©` is `(π•¨βŠi)βŠ‘π•©` if `𝕨` is complete. If multiple argument axes correspond to the same result axis, then a diagonal is taken, and it's as long as the shortest of those argument axes. While Transpose does not enclose an atom right argument, Reorder Axes does, so that its result is always an array.
+**Transpose** (`⍉`) reorders axes of its argument to place the first axis last; if the argument has one or fewer axes then it's enclosed if it's an atom and otherwise returned unchanged. **Reorder Axes** (`⍉`) requires the left argument to be a list or unit of natural numbers, with length at most the rank of the right argument. This list is extended to match the right argument rank exactly by repeatedly appending the least unused natural number (for example, given `1β€Ώ3β€Ώ0β€Ώ0`, `2` is appended). After extension, it specifies a result axis for each axis of the right argument. There must be no gaps in the list: that is, with the result rank equal to one plus the greatest value present, every result axis must appear at least once. Now each argument axis is "sent to" the specified result axis: in terms of indices, `iβŠ‘π•¨β‰π•©` is `(π•¨βŠi)βŠ‘π•©` if `𝕨` is complete. If multiple argument axes correspond to the same result axis, then a diagonal is taken, and it's as long as the shortest of those argument axes. Like Transpose, Reorder Axes encloses `𝕩` if it's an atom, so that its result is always an array.
### Indices and selection
@@ -169,15 +169,15 @@ For **Select** (`⊏`), `𝕨` is an array of natural numbers, or a list of such
Monadic structural functions work on the first axis of the argument, so they require it to have rank at least 1. **Reverse** (`⌽`) reverses the ordering of the major cells of `𝕩`. **Nudge** (`Β»`) shifts them forward, removing the last and placing a major cell made up of fill elements at the beginning, while **Nudge Back** (`Β«`) does the same in the reverse direction, so it removes the first cell and places fills at the end. **Prefixes** (`↑`) and **Suffixes** (`↓`) each return lists with length one higher than `𝕩`, whose elements are arrays with the same rank as `𝕩`. For Prefixes, the element of the result at index `i` contains the first `i` major cells of `𝕩` in order, and for Suffixes, it contains all but these major cells.
-The remainder of the functions discussed in this section are dyadic. There are four functions for which `𝕨` is a list of whole numbersβ€”but an atomic number or enclosed number is also permitted, and treated as a 1-element listβ€”and its elements are matched with leading axes of `𝕩`. These functions independently manipulate each axis: one way to define such a process is to consider lists running along the axis, where every element of the index is fixed except one. A change to this axis retains the fixed indices, but can move elements from one location to another along the variable index, add fill elements, or split the axis into two axes. A change to a different axis can rearrange these lists along the original axis, but can't affect the placement of elements within them. In the reference implementations, working on leading axes is accomplished using the Cells (`˘`) modifier recursively, so that action on the first axes doesn't use Cells, on the next is affected by Cells once, then twice, and so on.
+The remainder of the functions discussed in this section are dyadic. For all of these, an atom value for `𝕩` is treated as an array by enclosing it before acting, so that the result is never an atom. There are four functions for which `𝕨` is a list of whole numbersβ€”but an atomic number or enclosed number is also permitted, and treated as a 1-element listβ€”and its elements are matched with leading axes of `𝕩`. These functions independently manipulate each axis: one way to define such a process is to consider lists running along the axis, where every element of the index is fixed except one. A change to this axis retains the fixed indices, but can move elements from one location to another along the variable index, add fill elements, or split the axis into two axes. A change to a different axis can rearrange these lists along the original axis, but can't affect the placement of elements within them. In the reference implementations, working on leading axes is accomplished using the Cells (`˘`) modifier recursively, so that action on the first axes doesn't use Cells, on the next is affected by Cells once, then twice, and so on.
**Rotate** (`⌽`) is the simplest of these four functions: each element of `𝕨` gives an amount to rotate the corresponding axis, where a rotation of `r` moves the element at index `i+r` to `i` when all indices are taken modulo the length of the axis. **Windows** (`↕`) splits each axis of `𝕩` that corresponds to an element of `𝕨` in two, so that the result has one set of axes corresponding to elements of `𝕨`, then another, then the unchanged trailing axes. The second set of axes has lengths given by `𝕨` (which must consist of natural numbers), while the first has lengths `s¬𝕨`, where `s` contains the lengths of leading axes of `𝕩`. Position `i` in the first set of axes and `j` in the second corresponds to `i+j` in the argument, so that fixing one of these positions and varying the other gives a slice of the argument. In both Rotate and Windows, the length of `𝕨` is at most the rank of `𝕩`.
-**Take** (`↑`) offers several possibilities. The absolute value of `𝕨` gives the final lengths of the axes in the result. It may be positive to indicate that the axis aligns with `𝕩` at the beginning, or negative to indicate it aligns at the end. A zero value gives no result elements, so there is no need to consider alignment. If the absolute value of an element of `𝕨` is smaller than or equal to the corresponding length in `𝕩`, then the first or last few elements are taken along that axis. If it is larger, then instead fill elements are added to the end (if positive) or beginning (if negative) to make up the difference in length. **Drop** (`↓`) gives `𝕨` a similar meaning, but excludes all elements that Take includes (maintaining the order of the retained ones). The result of Drop never uses fill elements. In a case where Take would use fill elements, it would include all positions from `𝕩`, so Drop should include none of them, and the result will have length `0` for that axis. Take and Drop are extended to allow an argument with length greater than the rank of `𝕩`. In this case leading length-1 axes are added to `𝕩` so that its rank matches `𝕨` before taking or dropping. If `𝕩` is an atom, it is always enclosed to an array first, even if `𝕨` is empty.
+**Take** (`↑`) offers several possibilities. The absolute value of `𝕨` gives the final lengths of the axes in the result. It may be positive to indicate that the axis aligns with `𝕩` at the beginning, or negative to indicate it aligns at the end. A zero value gives no result elements, so there is no need to consider alignment. If the absolute value of an element of `𝕨` is smaller than or equal to the corresponding length in `𝕩`, then the first or last few elements are taken along that axis. If it is larger, then instead fill elements are added to the end (if positive) or beginning (if negative) to make up the difference in length. **Drop** (`↓`) gives `𝕨` a similar meaning, but excludes all elements that Take includes (maintaining the order of the retained ones). The result of Drop never uses fill elements. In a case where Take would use fill elements, it would include all positions from `𝕩`, so Drop should include none of them, and the result will have length `0` for that axis. Take and Drop are extended to allow an argument with length greater than the rank of `𝕩`. In this case leading length-1 axes are added to `𝕩` so that its rank matches `𝕨` before taking or dropping.
**Replicate** (`/`) is similar to the four dyadic structural functions above, but `𝕨` gives a list of containing *lists* of natural numbers, or plain or enclosed natural numbers, instead of a simple list. If `𝕨` has depth less than `2`, it's considered to be a single value corresponding to one axis of `𝕩`, while if it has depth `2` then it's a list of values. If `𝕨` is the empty list `⟨⟩` then it is defined to be in the second case despite having a depth of `1`. On a single axis of `𝕩` the corresponding value `r` from `𝕨` is either a list or a unit: if it's a unit then it is repeated to match the length of that axis of `𝕩`, and if it's a list it must already have the same length as that axis. Each number in `r` now specifies the number of times to repeat the corresponding position in `𝕩`. This is equivalent to calling Indices on `r` and using the result for selection.
-**Shift Before** (`Β»`) and **Shift After** (`Β«`) are derived from Join To and share most of its behavior. The difference is that only a portion of the result of Join To is returned, matching the length of `𝕩`. This portion comes from the beginning for Shift Before and the end for Shift After. The only difference in conditions between the shift functions and Join To is that Join To allows `𝕩` to have smaller rank than `𝕨` while for shifting it must have the same or greater rank.
+**Shift Before** (`Β»`) and **Shift After** (`Β«`) are derived from Join To and share most of its behavior. The difference is that only a portion of the result of Join To is returned, matching the length of `𝕩`. This portion comes from the beginning for Shift Before and the end for Shift After. The only difference in conditions between the shift functions and Join To is that Join To allows the result to have higher rank than `𝕩`. Shifts do not, so the rank of `𝕩` be at least 1 and at least as high as `𝕨`.
### Searching
diff --git a/spec/reference.bqn b/spec/reference.bqn
index e59e8dc7..40cbefb9 100644
--- a/spec/reference.bqn
+++ b/spec/reference.bqn
@@ -281,7 +281,7 @@ _onAxes_←{
! 𝕨≀○≠≒𝕩
R←{(βŠ‘π•¨)F(1 DropV 𝕨)⊸RΛ˜π•©}⍟{0<≠𝕨}
𝕨R𝕩
- }
+ }⟜ToArray
}
SelSub←{
@@ -419,7 +419,7 @@ ReorderAxes←{
π•¨β†©π•¨βˆΎπ•¨(¬∘∊˜/⊒)↕r
(π•¨βŠΈβŠβŠ‘π•©Λ™)Β¨β†•βŒŠΒ΄Β¨π•¨βŠ”β‰’π•©
}
-Transpose←(=-1Λ™)⊸ReorderAxes⍟(0<=)
+Transpose←(0<=)β—ΆβŸ¨ToArray,(=-1Λ™)⊸ReorderAxes⟩
# Sorting
Cmp ← βˆ¨β—‹IsArrayβ—Ά{ # No arrays
diff --git a/src/r.bqn b/src/r.bqn
index d70f51c4..74152ab8 100644
--- a/src/r.bqn
+++ b/src/r.bqn
@@ -123,14 +123,14 @@ Indices←{
}⍟(0<l)𝕩
}
-Transpose←{
+Transpose←(0<=)β—ΆβŸ¨ToArray,{
l←≠𝕩 β‹„ m←1Γ—Β΄c←1 Cell 𝕩
(cβ₯Šβ†•m)(+⟜(mβŠΈΓ—)βŠ‘(β₯Šπ•©)Λ™)βŒœβ†•l
-}_fillBy_⊒⍟(0<=)
+}_fillBy_⊒⟩
TransposeInv←{
r←1-˜=𝕩 β‹„ s←≒𝕩 β‹„ l←rβŠ‘s β‹„ cβ†βŠ‘βŸœsβŒœβ†•r
(↕l)(+⟜(lβŠΈΓ—)βŠ‘(β₯Šπ•©)Λ™)⌜cβ₯Šβ†•1Γ—Β΄c
-}_fillBy_⊒⍟(0<=)
+}_fillBy_⊒⍟{IX IsArray𝕩⋄0<=𝕩}
Reverse←{
"βŒ½π•©: 𝕩 must have rank at least 1" ! 1≀=𝕩
@@ -401,7 +401,7 @@ _onAxes_←{
"Multi-axis primitive: Length of 𝕨 must be at most rank of 𝕩" ! 𝕨≀○≠≒𝕩
l←≠𝕨 β‹„ Wβ†βŠ‘βŸœ(β₯Šπ•¨)
0{(W𝕨)F(1+𝕨)βŠΈπ•ŠΛ˜βŸ(𝕨<l-1)𝕩}⍟(0<l)𝕩
- }
+ }⟜ToArray
}
Γ· ↩ Γ· _perv
diff --git a/test/cases/prim.bqn b/test/cases/prim.bqn
index e5e334f8..422288aa 100644
--- a/test/cases/prim.bqn
+++ b/test/cases/prim.bqn
@@ -209,6 +209,7 @@
Β―6≑1β€Ώ0β—Ά(2β€Ώ2β₯Š0β€Ώ0β€Ώ-β€Ώ0)6
! % -Λ™β—ΆΓ·β€ΏΓ— 4
⟨3βŸ©β‰‘β₯Š3
+(⟨⟩⊸β₯Šβ‰‘<)3
⟨3,3,3βŸ©β‰‘3β₯Š3
⟨3,3,3βŸ©β‰‘3<⊸β₯Š3
! % Β―3β₯Š3
@@ -304,6 +305,7 @@
5β€Ώ1(<βŠΈβŠβ‰‘βŠ)↕6β€Ώ2
! % (≍≍<5β€Ώ1)βŠβ†•6β€Ώ2
⟨4β€Ώ0,1β€Ώ2β€Ώ3β€Ώ2β€Ώ1β€Ώ0⟩(+⌜´⊸(Γ—βŒœ)β‰‘βŠβŸœ(Γ—βŒœΛœ))+βŒœΛœβ†•5
+∧´1=≑¨(<⟨⟩)(β†‘Β¨βˆΎβ†“Β¨)⟨@,+,<@,↕3⟩
"abc"≑3↑"abce"
"e"≑¯1↑"abce"
""≑0↑"ab"
@@ -368,7 +370,7 @@
∧´5(βŒ½β‰‘βŠ’)¨⟨"",β₯Šβˆž,↕5,↕0β€Ώ4,2β€Ώ0β€Ώ3β₯Š""⟩
∧´("bcdea"β‰‘βŒ½βŸœ"abcde")Β¨1+5Γ—Β―10β€ΏΒ―2β€ΏΒ―1β€Ώ0β€Ώ1β€Ώ6β€Ώ61
∧´⟨1,0β€Ώ2,Β―1β€Ώ1β€Ώ3⟩(βŠ‘βˆ˜βŒ½β‰‘(3βŠΈβ†‘)βŠΈβŠ‘)βš‡Β―1β€Ώβˆž 2β€Ώ3β€Ώ5β₯Š"abcdef"
-⟨⟩(βŒ½β‰‘βŠ’)'a'
+(βŸ¨βŸ©βŠΈβŒ½β‰‘<)'a'
! % /2
! % /1β€ΏΒ―1β€Ώ0
! % /=βŒœΛœβ†•2
@@ -386,6 +388,7 @@
3β€Ώ3β€Ώ3β€Ώ2β€Ώ2β€Ώ1≑/˜3β€Ώ2β€Ώ1
3β€Ώ3β€Ώ3β€Ώ2β€Ώ2β€Ώ1≑<⊸/3β€Ώ2β€Ώ1
(≍1∾¨1β€Ώ2β€Ώ2)≑(↕¨/↕)2β€Ώ3
+(⟨⟩⊸/≑<)'a'
⟨⟩(/β‰‘βŠ’)≍"ab"
⟨2,<3⟩(/≑β₯ŠΛœΒ¨βŸœβ‰’/⊒)'a'+4β€Ώ2β₯Šβ†•8
@@ -461,7 +464,8 @@
0β€Ώ1β€Ώ0β€Ώ0≑"abc"⍷"aabcba"
(0β€Ώ1≍0β€Ώ0)≑(1β€Ώ2≍4β€Ώ5)⍷3β€Ώ3β₯Šβ†•9
(βŒ½Β¨β‰‘β‰)↕2β₯Š3
-βˆ§Β΄β‰βŠΈβ‰‘Β¨βŸ¨'a',<'a',"a","abc",""⟩
+(⍉≑<)'a'
+βˆ§Β΄β‰βŠΈβ‰‘Β¨βŸ¨<'a',"a","abc",""⟩
(↕4)(-ΛœβŒœΛœβ‰‘Β·β‰-⌜)↕3β€Ώ2
! % 0β€ΏΒ―1β€Ώ1⍉(3β₯Š1)β₯Š1
! % 1β€Ώ0β‰Λ˜βŠΈβ‰"ab"≍"cd"
@@ -469,6 +473,7 @@
! % 2β€Ώ0β€Ώ0⍉↕↕3
! % 3⍉↕↕3
(2×↕3)≑0β€Ώ0⍉6+βŒœβ—‹β†•3
+(βŸ¨βŸ©βŠΈβ‰β‰‘<)4
⟨⟩(β‰β‰‘βŠ’)<4
(2β€Ώ0β€Ώ1β₯ŠβŸ¨βŸ©)≑1β€Ώ2β€Ώ0β€Ώ1⍉↕↕4
(↕1β€Ώ2β€Ώ0β€Ώ3)≑2<βŠΈβ‰β†•β†•4