diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/bqn.js | 10 | ||||
| -rw-r--r-- | docs/doc/primitive.html | 6 | ||||
| -rw-r--r-- | docs/problems.html | 6 | ||||
| -rw-r--r-- | docs/repl.js | 4 | ||||
| -rw-r--r-- | docs/spec/token.html | 2 |
5 files changed, 17 insertions, 11 deletions
diff --git a/docs/bqn.js b/docs/bqn.js index e57032a3..d1d9fe1a 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -139,19 +139,19 @@ let provide = [ ]; let runtime = run( - new Uint8Array([15,1,22,0,0,11,14,15,2,22,0,1,11,14,15,3,0,20,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,0,12,21,0,6,0,11,8,0,21,3,2,21,0,0,0,0,8,22,0,9,11,14,0,12,21,0,6,0,11,8,0,8,0,13,21,0,6,0,21,8,19,0,21,3,2,21,0,0,0,0,8,22,0,10,11,14,21,0,3,0,13,7,22,0,11,11,14,21,0,11,0,7,0,22,19,0,20,15,11,8,22,0,12,11,14,0,13,0,7,0,22,19,22,0,13,11,14,15,12,0,16,21,0,13,19,0,20,0,11,8,22,0,14,11,14,15,13,0,16,21,0,12,19,0,20,0,7,21,0,4,21,0,14,21,0,4,0,7,8,8,8,22,0,15,11,14,0,22,0,14,0,16,0,21,19,3,2,21,0,0,0,12,21,0,12,0,21,19,8,22,0,16,11,14,15,14,22,0,17,11,14,21,0,17,22,0,18,11,14,0,0,0,7,0,22,19,21,0,8,21,0,12,8,22,0,19,11,14,0,14,21,0,7,15,15,8,22,0,20,11,14,15,16,22,0,21,11,14,15,17,22,0,22,11,14,15,18,22,0,23,11,14,0,13,0,7,21,0,11,19,22,0,24,11,14,0,22,0,15,0,16,0,21,19,21,0,7,0,13,0,8,0,23,19,0,7,0,22,19,15,19,3,2,21,0,0,21,0,1,21,0,4,0,0,8,8,8,3,2,21,0,0,21,0,1,21,0,4,0,14,8,21,0,18,0,8,7,0,22,19,21,0,12,0,21,19,8,22,0,25,11,14,21,0,24,21,0,25,21,0,3,21,0,25,7,0,7,9,3,2,21,0,0,21,0,2,21,0,4,0,0,8,8,15,20,3,3,21,0,0,0,0,21,0,5,0,6,8,8,22,0,26,11,14,15,21,22,0,27,11,14,15,22,22,0,28,11,14,0,12,21,0,12,0,21,19,21,0,8,15,23,8,22,0,29,11,14,0,12,21,0,12,0,21,19,21,0,8,15,24,8,22,0,30,11,14,15,25,22,0,31,11,14,15,26,22,0,32,11,14,15,27,22,0,33,11,14,15,28,22,0,34,11,14,15,29,22,0,35,11,14,0,0,21,0,5,0,12,8,0,21,3,2,21,0,1,21,0,4,0,0,8,0,12,3,2,0,12,21,0,5,0,12,8,0,21,3,2,0,14,21,0,5,21,0,35,0,12,7,8,21,0,18,0,8,7,0,22,19,0,21,3,2,15,30,3,5,21,0,18,15,31,7,16,22,0,36,11,14,0,21,15,32,3,2,21,0,0,0,0,8,22,0,37,11,14,21,0,36,0,20,21,0,37,8,22,0,38,11,14,21,0,36,0,7,0,22,19,0,20,3,0,0,14,3,2,21,0,0,0,0,8,8,22,0,39,11,14,15,33,22,0,40,11,14,15,34,22,0,41,11,14,0,22,21,0,41,21,0,31,8,21,0,6,21,0,19,8,22,0,42,11,14,21,0,42,0,20,21,0,42,21,0,6,0,21,8,8,22,0,43,11,14,0,0,21,0,8,0,15,21,0,4,21,0,16,8,21,0,12,0,21,19,21,0,8,15,35,8,8,22,0,44,11,14,15,36,22,0,45,11,14,21,0,23,0,9,7,22,0,46,11,14,21,0,23,0,10,7,22,0,47,11,14,21,0,3,21,0,46,21,0,7,21,0,47,8,7,0,20,0,23,21,0,46,16,21,0,7,21,0,47,8,8,22,0,48,11,14,21,0,23,15,37,0,20,0,7,21,0,1,3,2,21,0,0,0,13,21,0,6,0,21,8,8,8,7,22,0,49,11,14,21,0,23,15,38,0,20,21,0,14,8,7,22,0,50,11,14,21,0,23,15,39,0,20,0,7,21,0,4,21,0,50,21,0,4,0,7,8,8,8,7,22,0,51,11,14,21,0,23,0,8,7,0,20,21,0,45,0,21,7,8,22,0,52,11,14,21,0,23,0,8,0,7,0,6,19,7,0,20,21,0,45,0,22,7,8,22,0,53,11,14,21,0,23,0,8,0,20,21,0,13,0,7,21,0,12,19,21,0,6,0,21,8,8,7,22,0,54,11,14,21,0,23,21,0,11,0,7,0,22,19,7,0,20,15,40,8,22,0,55,11,14,21,0,23,0,13,0,7,0,22,19,7,0,20,21,0,44,8,22,0,56,11,14,21,0,23,0,12,0,7,0,22,19,7,0,20,21,0,16,8,22,0,57,11,14,21,0,23,0,12,7,0,20,0,12,8,22,0,58,11,14,21,0,23,21,0,11,7,0,20,21,0,3,0,21,7,0,5,0,46,19,8,22,0,59,11,14,21,0,23,0,13,7,0,20,21,0,3,0,21,7,0,5,0,47,19,8,22,0,60,11,14,21,0,23,0,6,7,22,0,61,11,14,21,0,23,0,7,7,22,0,62,11,14,21,0,62,21,0,61,0,22,19,22,0,63,11,14,21,0,61,0,21,3,2,21,0,62,0,21,3,2,21,0,54,0,22,3,2,21,0,46,0,22,3,2,21,0,47,0,22,3,2,21,0,48,0,22,3,2,21,0,52,0,22,3,2,21,0,53,0,21,3,2,21,0,63,0,22,3,2,21,0,49,0,21,3,2,21,0,50,0,28,3,2,21,0,51,0,29,3,2,21,0,55,0,21,3,2,21,0,60,0,22,3,2,21,0,58,0,22,3,2,21,0,59,0,22,3,2,21,0,56,0,21,3,2,21,0,57,0,21,3,2,3,18,21,0,18,15,41,7,21,0,3,0,21,7,0,5,0,48,19,3,1,0,16,0,21,17,17,22,0,64,11,14,15,42,0,15,3,2,21,0,0,0,0,8,22,0,65,11,14,15,43,22,0,66,11,14,0,15,0,20,21,0,65,8,22,0,67,11,14,15,44,22,0,68,11,14,15,45,0,20,15,46,8,22,0,69,11,14,21,0,69,21,0,4,21,0,56,8,22,0,70,11,14,15,47,22,0,71,11,14,15,48,22,0,72,11,14,21,0,72,22,0,73,11,14,15,49,22,0,74,11,14,21,0,74,22,0,75,11,14,15,50,22,0,76,11,14,21,0,76,22,0,77,11,14,21,0,67,21,0,5,21,0,21,8,15,51,3,2,21,0,0,21,0,58,21,0,55,0,22,19,21,0,5,21,0,53,8,8,22,0,78,11,14,15,52,22,0,79,11,14,15,53,22,0,80,11,14,21,0,79,0,20,21,0,80,8,22,0,81,11,14,15,54,22,0,82,11,14,15,55,22,0,83,11,14,21,0,82,0,20,21,0,83,8,22,0,84,11,14,15,56,22,0,85,11,14,21,0,43,21,0,6,21,0,28,8,22,0,86,11,14,21,0,57,21,0,58,0,21,19,21,0,62,0,22,19,21,0,41,15,57,15,58,3,2,21,0,0,15,59,8,8,22,0,87,11,14,21,0,85,0,20,21,0,68,8,22,0,88,11,14,0,21,21,0,41,21,0,33,8,0,20,21,0,32,8,22,0,89,11,14,21,0,87,0,20,21,0,28,8,22,0,90,11,14,21,0,67,21,0,4,21,0,57,8,21,0,55,0,21,19,21,0,8,15,60,15,61,3,2,21,0,0,0,18,21,0,58,7,21,0,57,0,22,19,21,0,18,21,0,53,7,9,0,22,3,2,21,0,0,21,0,58,21,0,57,0,22,19,8,8,8,22,0,91,11,14,15,62,22,0,92,11,14,15,63,22,0,93,11,14,15,64,22,0,94,11,14,21,0,78,0,20,21,0,91,8,22,0,95,11,14,21,0,94,0,20,21,0,93,8,22,0,96,11,14,15,65,22,0,97,11,14,21,0,97,15,66,3,2,21,0,0,21,0,2,21,0,4,21,0,67,21,0,4,0,18,0,0,7,8,8,21,0,18,21,0,53,7,9,8,22,0,98,11,14,21,0,98,21,0,6,21,0,67,21,0,1,3,2,21,0,0,0,0,8,8,22,0,99,11,14,15,67,22,0,100,11,14,15,68,22,0,101,11,14,15,69,22,0,102,11,14,15,70,22,0,103,11,14,21,0,103,21,0,26,7,0,20,0,21,21,0,27,21,0,26,8,8,22,0,104,11,14,21,0,103,21,0,3,21,0,26,7,7,0,20,0,22,21,0,27,21,0,3,21,0,26,7,8,8,22,0,105,11,14,15,71,22,0,106,11,14,0,4,21,0,6,21,0,35,0,22,7,8,22,0,107,11,14,15,72,22,0,108,11,14,21,0,108,21,0,1,21,0,4,0,19,21,0,61,7,8,21,0,3,21,0,62,7,0,22,19,21,0,3,21,0,43,7,21,0,3,21,0,90,21,0,4,21,0,104,21,0,4,21,0,107,8,8,7,19,7,22,0,109,11,14,15,73,22,0,110,11,14,21,0,106,0,22,7,0,20,21,0,109,8,22,0,111,11,14,21,0,3,21,0,106,0,21,7,7,0,20,21,0,108,21,0,1,7,8,22,0,112,11,14,21,0,110,0,20,21,0,90,21,0,6,21,0,112,8,8,22,0,113,11,14,15,74,22,0,114,11,14,15,75,22,0,115,11,14,15,76,22,0,116,11,14,15,77,22,0,117,11,14,21,0,116,0,20,21,0,29,8,22,0,118,11,14,21,0,104,21,0,4,21,0,104,8,21,0,43,21,0,62,21,0,1,19,21,0,3,21,0,111,7,19,22,0,119,11,14,15,78,22,0,120,11,14,21,0,120,0,20,21,0,119,8,22,0,121,11,14,21,0,99,0,20,21,0,67,0,16,0,21,19,8,22,0,122,11,14,15,79,22,0,123,11,14,0,5,21,0,6,0,94,8,22,0,124,11,14,0,5,21,0,6,0,95,8,22,0,125,11,14,15,80,22,0,126,11,14,15,81,22,0,127,11,14,15,82,22,0,128,1,11,14,21,0,61,21,0,3,21,0,62,7,0,20,21,0,61,8,21,0,62,21,0,62,21,0,54,21,0,3,21,0,46,7,0,20,21,0,1,8,21,0,46,21,0,46,21,0,47,21,0,23,0,2,7,21,0,48,21,0,3,21,0,47,7,0,20,0,23,21,0,7,21,0,47,8,8,21,0,52,21,0,3,21,0,46,7,0,20,21,0,52,21,0,126,21,0,1,8,8,21,0,53,21,0,1,21,0,62,0,22,19,21,0,46,21,0,3,21,0,62,7,19,0,20,21,0,53,21,0,126,21,0,1,8,8,21,0,63,21,0,63,21,0,55,0,21,21,0,4,21,0,124,8,0,20,15,83,8,21,0,1,21,0,1,21,0,2,21,0,38,21,0,4,21,0,125,8,21,0,2,21,0,1,19,0,20,21,0,1,8,21,0,95,15,84,0,20,0,21,21,0,4,21,0,124,8,8,21,0,70,15,85,0,20,15,86,8,21,0,81,0,21,21,0,4,21,0,124,8,0,20,21,0,81,21,0,126,21,0,122,21,0,6,0,27,8,8,8,21,0,84,0,21,21,0,4,21,0,124,8,0,20,21,0,84,21,0,126,21,0,122,8,8,21,0,88,0,21,21,0,4,21,0,124,8,0,20,21,0,88,21,0,126,21,0,39,8,8,21,0,89,21,0,89,21,0,6,21,0,62,8,0,20,21,0,89,8,21,0,118,21,0,117,0,20,21,0,30,8,21,0,90,0,21,21,0,4,21,0,124,8,0,20,15,87,8,21,0,96,21,0,128,1,0,20,21,0,127,8,3,42,21,0,67,21,0,6,21,0,57,21,0,3,21,0,46,7,0,23,19,21,0,3,21,0,95,7,0,23,19,8,16,21,0,118,16,15,88,16,22,0,129,1,11,14,15,89,22,0,130,1,11,14,15,90,22,0,131,1,11,14,21,0,131,1,22,0,132,1,11,14,21,0,55,21,0,111,21,0,4,21,0,122,8,21,0,4,21,0,50,21,0,89,21,0,81,3,4,19,22,0,133,1,11,14,21,0,66,0,20,21,0,65,8,22,0,134,1,11,14,15,91,22,0,135,1,11,14,21,0,34,22,0,136,1,11,14,21,0,61,21,0,62,21,0,54,21,0,46,21,0,47,21,0,48,21,0,50,21,0,51,21,0,49,21,0,63,21,0,52,21,0,53,21,0,55,21,0,56,21,0,57,21,0,58,21,0,60,21,0,59,21,0,38,21,0,39,21,0,2,21,0,1,21,0,134,1,21,0,95,21,0,70,21,0,81,21,0,84,21,0,88,21,0,89,21,0,118,21,0,90,21,0,104,21,0,105,21,0,43,21,0,122,21,0,111,21,0,121,21,0,112,21,0,113,21,0,96,0,5,21,0,3,21,0,40,21,0,35,21,0,135,1,21,0,130,1,21,0,18,21,0,77,0,19,21,0,4,21,0,5,21,0,6,21,0,7,21,0,136,1,0,20,21,0,123,21,0,75,21,0,73,21,0,132,1,3,59,25,21,0,1,15,92,21,0,5,0,16,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,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,93,21,1,1,21,0,4,3,2,0,16,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,0,15,3,0,17,25,21,0,2,21,0,1,3,2,25,21,0,2,21,0,1,3,2,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,31,17,14,21,0,1,22,0,5,11,21,1,16,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,2,0,20,15,94,15,95,3,2,21,1,0,21,0,6,21,1,12,0,21,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,0,17,16,0,18,0,7,21,1,6,0,22,0,7,21,0,6,17,8,7,16,0,18,15,96,7,16,14,21,0,8,25,21,0,2,0,7,21,0,1,21,1,16,16,17,0,17,16,0,18,21,1,3,21,0,1,7,0,16,0,6,21,1,6,21,0,2,8,19,7,16,25,21,0,2,21,1,16,16,22,0,3,11,14,21,0,1,21,1,16,16,0,6,21,0,3,17,0,17,16,0,18,21,0,2,21,1,7,0,16,8,21,1,3,21,0,1,7,0,16,21,0,3,21,1,7,0,7,8,19,3,2,21,1,0,0,13,21,1,6,21,0,3,8,8,7,16,25,15,97,22,0,2,11,14,15,98,22,0,3,11,14,21,0,3,21,0,1,7,21,1,3,21,0,3,21,1,3,21,0,1,7,7,7,3,2,21,1,0,0,12,21,1,5,21,1,13,8,8,21,0,2,21,0,1,7,3,2,21,1,0,0,12,21,1,5,0,12,8,8,25,15,99,21,0,1,7,22,0,2,11,14,21,0,1,15,100,15,101,3,2,21,1,0,0,0,21,1,5,21,1,13,8,8,0,20,0,18,21,0,2,7,8,21,1,22,21,0,2,7,3,3,21,1,0,0,0,21,1,5,0,6,8,8,25,21,0,1,21,1,25,21,0,2,17,25,21,0,1,0,14,21,1,5,21,1,100,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,18,21,1,101,21,0,1,0,15,16,21,1,7,0,16,8,21,1,7,21,1,26,21,1,6,21,0,2,0,15,16,21,1,7,0,16,8,8,8,7,7,16,22,0,4,11,14,0,21,21,1,3,21,0,4,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,34,17,14,21,0,1,21,1,16,16,22,0,6,11,14,21,0,1,21,1,20,0,22,17,21,1,18,0,8,7,0,22,17,22,0,7,11,14,21,0,1,0,15,16,22,0,8,11,14,0,21,22,0,9,11,22,0,10,11,14,21,0,8,0,21,0,18,21,1,9,7,21,1,18,0,8,7,0,22,19,3,2,21,1,0,21,0,6,21,1,12,0,24,17,0,8,0,22,0,12,21,0,7,17,17,8,16,21,1,1,21,1,8,21,0,1,21,1,7,15,102,8,8,16,0,7,0,22,17,22,0,11,11,14,21,0,1,0,18,21,0,10,21,1,7,0,7,8,0,7,21,1,6,21,0,9,8,3,2,0,16,21,0,5,17,7,0,4,21,1,6,0,3,8,9,15,103,21,0,4,7,3,2,21,1,0,21,0,11,8,16,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,35,17,14,21,0,1,21,1,16,16,22,0,3,11,14,21,0,1,21,0,3,21,1,12,0,21,17,21,1,8,15,104,8,16,25,21,0,1,21,1,16,16,22,0,3,11,14,21,0,1,21,1,20,0,22,17,22,0,4,11,21,1,18,0,8,7,0,22,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,1,3,21,0,1,0,15,16,7,0,16,0,8,21,1,6,21,0,5,8,21,1,7,0,6,8,19,7,21,0,5,0,17,16,0,15,21,0,4,17,17,25,21,0,1,0,12,16,21,1,3,0,7,7,0,22,17,22,0,3,11,14,21,0,1,0,14,16,22,0,4,11,14,21,0,4,0,16,21,0,3,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,0,4,21,1,7,0,16,8,7,16,22,0,6,11,14,21,0,6,21,1,18,0,8,7,0,22,17,0,17,16,0,15,21,0,6,17,0,18,21,1,3,21,0,1,0,15,16,7,0,16,0,8,21,1,6,21,0,5,8,21,1,7,0,6,8,19,7,21,0,5,0,17,16,17,25,21,0,2,0,0,16,0,5,0,37,17,14,21,0,2,0,18,21,1,9,7,16,0,15,16,21,1,18,0,8,7,0,22,17,0,5,0,38,17,14,21,0,1,21,1,16,16,22,0,3,11,14,21,0,2,0,18,21,1,13,21,1,6,21,0,3,8,0,8,0,13,21,1,6,21,0,3,0,7,16,8,19,7,16,0,15,16,21,1,18,0,8,7,0,22,17,0,5,0,39,17,14,21,0,1,15,105,15,106,3,2,21,1,0,21,0,1,0,12,16,0,12,0,22,17,8,21,0,2,0,18,21,1,1,21,1,13,0,21,19,0,8,21,0,3,19,0,6,21,1,1,19,7,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,40,17,14,21,0,1,21,1,16,16,22,0,3,11,14,21,0,1,21,1,42,21,0,3,0,17,16,0,18,0,7,21,1,6,0,22,0,7,21,0,3,17,8,7,16,17,25,21,0,2,21,1,9,16,0,5,0,41,17,14,21,0,1,21,1,16,16,22,0,3,11,14,21,0,3,0,9,21,0,2,17,21,1,14,16,0,8,21,0,3,17,0,7,22,0,2,13,14,21,0,1,21,1,42,21,0,3,0,17,16,0,18,21,1,1,0,13,21,0,2,0,7,21,0,3,17,19,0,8,21,0,3,19,0,7,21,1,1,19,0,6,21,0,2,19,7,16,17,25,21,0,1,0,14,16,22,0,6,11,21,1,18,0,8,7,0,22,17,22,0,7,11,0,17,16,22,0,8,11,14,21,0,1,21,0,5,21,1,5,21,0,4,8,21,0,2,17,22,0,9,11,14,21,0,8,0,15,21,0,6,17,21,0,5,16,22,0,10,11,14,15,107,0,15,3,2,0,16,21,0,10,0,0,16,17,22,0,11,11,14,21,0,9,21,0,11,16,22,0,9,12,14,21,0,10,21,0,11,16,22,0,10,12,14,21,0,10,0,21,21,1,27,21,1,24,8,16,22,0,12,11,14,21,1,3,21,0,10,7,0,16,21,0,12,21,1,7,0,16,8,19,21,0,7,3,2,21,1,0,0,13,21,1,6,21,0,12,21,1,16,16,8,8,22,0,13,11,14,0,21,22,0,14,11,21,0,13,16,22,0,15,11,14,21,0,8,0,18,21,0,1,0,15,16,21,1,7,0,16,8,15,108,3,2,21,1,0,15,109,8,7,16,0,15,21,0,6,17,25,21,1,19,21,1,5,21,1,22,21,0,1,7,0,20,0,18,21,0,1,7,8,8,25,21,0,1,21,1,35,21,1,36,7,21,0,2,17,0,15,16,21,1,18,0,8,7,0,22,17,25,21,0,2,0,16,0,22,17,21,0,1,3,2,21,1,0,21,0,2,0,16,0,21,17,8,25,21,0,1,0,15,16,0,18,21,1,37,7,16,21,1,18,0,7,0,8,0,13,19,0,7,21,1,2,19,7,0,21,17,0,6,0,22,17,25,0,27,21,1,74,21,0,1,8,25,21,0,1,22,0,3,11,14,15,110,15,111,3,2,21,1,0,21,1,2,21,1,4,21,1,38,21,1,12,21,0,2,19,8,8,25,21,0,1,0,15,16,0,16,0,21,17,21,1,39,16,22,0,3,11,14,21,0,1,0,15,16,0,18,21,1,39,21,1,38,21,0,3,19,7,16,21,1,18,0,8,7,0,22,17,0,5,0,45,17,14,21,0,3,21,1,18,0,8,7,0,22,17,0,17,16,0,15,21,0,3,17,0,18,21,1,3,21,1,65,21,1,7,0,16,8,7,7,21,0,1,17,25,21,1,42,21,1,6,21,0,1,21,1,27,21,1,26,21,1,3,21,1,26,7,3,2,0,16,21,0,1,17,8,8,25,21,0,2,21,1,46,21,0,1,17,21,1,14,16,0,8,21,0,2,17,0,7,21,0,1,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,13,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,12,21,0,2,17,17,25,21,0,1,3,1,0,15,3,0,17,25,21,0,1,21,0,2,0,16,0,22,17,3,2,21,1,0,15,112,21,0,2,0,16,0,21,17,7,8,25,21,0,1,3,1,25,21,0,2,21,1,58,16,21,1,59,0,22,17,0,5,0,49,17,14,21,0,2,21,1,65,16,22,0,3,11,14,21,0,3,0,18,21,1,10,7,16,21,1,63,16,22,0,4,11,21,1,18,21,1,61,7,16,22,0,5,11,14,21,0,5,21,1,59,0,22,17,0,5,0,50,17,14,21,0,1,21,1,65,16,22,0,6,11,21,1,57,16,22,0,7,11,14,21,0,3,21,1,18,21,1,54,7,15,113,3,2,21,1,0,21,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,21,1,57,21,0,8,17,21,1,8,15,114,8,16,0,15,21,0,3,17,25,15,115,22,0,3,11,14,15,116,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,0,0,0,8,16,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,21,1,4,21,1,67,8,21,1,1,21,1,4,21,1,55,8,21,1,35,0,16,7,21,1,57,21,1,7,21,1,3,21,1,49,21,1,61,0,22,19,21,1,62,21,1,2,19,7,8,19,0,22,0,21,3,2,0,20,0,23,3,1,8,19,25,21,0,1,21,1,71,21,0,5,7,21,0,2,17,22,0,6,11,21,1,56,0,21,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,117,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,71,21,0,5,7,21,1,35,21,1,62,21,1,7,21,1,50,8,21,1,62,21,1,51,0,21,19,3,2,21,1,0,21,1,1,21,1,60,0,21,19,8,7,21,1,58,21,1,5,21,1,69,8,19,21,0,2,17,22,0,6,11,14,15,118,22,0,7,11,14,21,1,1,21,1,55,9,21,0,7,21,1,1,0,18,21,1,55,7,9,3,3,21,1,0,21,1,58,21,1,7,21,1,59,8,21,1,61,0,22,19,21,1,54,0,21,21,1,7,21,1,56,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,16,21,1,6,21,1,57,21,1,3,21,1,62,7,0,22,19,8,16,17,21,1,35,21,0,4,7,21,0,2,21,0,7,21,0,6,0,16,0,21,17,17,17,21,1,56,16,25,21,0,1,21,1,58,16,21,1,60,0,22,17,0,5,0,56,17,14,21,0,1,21,1,40,21,1,55,7,16,21,1,18,21,0,4,7,21,0,2,17,25,21,0,1,21,1,39,21,1,5,21,1,69,8,21,0,2,17,22,0,3,11,14,21,0,3,0,18,21,1,57,7,16,22,0,4,11,21,1,18,21,1,51,7,0,22,17,22,0,5,11,14,21,0,4,21,1,62,21,0,5,17,21,1,59,0,22,17,21,1,18,21,1,52,7,16,0,5,0,57,17,14,21,0,3,21,1,35,21,1,43,21,1,6,0,22,21,1,62,21,0,5,17,0,17,16,21,1,7,21,1,61,8,8,7,21,0,5,21,1,63,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,18,21,1,38,7,16,0,5,0,58,17,14,21,0,3,21,1,35,0,22,21,1,1,0,16,0,21,19,3,2,21,1,0,21,1,2,8,7,21,0,4,21,1,58,21,0,5,17,17,21,1,18,21,1,61,7,16,22,0,7,11,14,21,0,1,21,1,67,21,1,5,21,1,21,8,21,0,2,17,21,1,67,21,0,6,0,16,0,21,17,21,1,21,21,0,7,3,1,17,17,25,15,119,22,0,3,11,14,21,0,1,21,1,67,21,1,67,21,1,39,21,1,4,21,1,21,21,1,6,21,1,1,21,1,57,21,1,5,21,1,62,8,21,0,2,19,21,1,51,0,21,19,0,17,21,1,4,0,18,0,22,7,8,9,8,8,19,16,0,21,21,1,41,21,0,3,8,21,0,2,17,25,21,0,1,21,1,58,16,21,1,60,0,22,17,0,5,0,60,17,14,21,0,1,21,1,57,16,21,1,61,0,22,17,0,17,16,0,18,21,0,1,21,1,7,21,1,79,8,7,16,25,21,0,1,21,1,39,16,21,1,57,21,1,7,21,1,62,8,21,1,51,0,21,19,0,17,21,1,4,0,18,0,22,7,8,9,21,1,3,21,1,21,7,21,1,1,19,21,1,81,21,1,2,19,21,0,2,21,1,57,16,17,22,0,3,11,14,21,0,1,21,1,81,21,0,2,21,1,50,21,0,3,17,21,1,51,21,0,3,21,1,62,16,17,21,1,61,0,21,21,1,56,21,0,2,17,21,1,47,0,27,17,21,1,54,21,0,3,17,17,17,25,21,0,1,21,1,58,16,21,1,60,0,22,17,0,5,0,61,17,14,21,0,1,21,1,57,16,21,1,61,0,22,17,0,17,16,0,18,21,0,1,21,1,7,21,1,82,8,7,16,25,21,0,1,0,0,16,0,5,0,62,17,14,21,0,2,21,1,58,16,21,1,59,0,22,17,0,5,0,63,17,14,21,0,1,21,1,39,16,21,1,57,21,1,5,21,1,60,8,21,0,2,17,0,5,0,64,17,14,21,0,2,21,1,67,16,0,18,21,1,10,7,16,21,1,18,21,1,52,7,16,0,5,0,65,17,14,21,0,1,21,1,39,16,21,1,81,21,0,2,21,1,57,16,17,22,0,3,11,14,21,0,3,21,1,61,0,22,17,21,1,60,21,0,2,17,21,1,18,21,1,52,7,16,0,5,0,66,17,14,21,0,1,21,0,2,21,1,57,16,21,1,55,0,21,17,21,1,8,15,120,8,21,0,2,17,25,21,0,1,21,1,86,21,1,6,21,1,40,21,0,2,7,8,16,25,21,0,1,21,1,57,21,1,5,21,1,58,8,21,0,2,17,0,5,0,67,17,14,21,0,1,21,1,86,21,0,2,17,25,21,0,2,21,1,58,16,21,1,55,0,21,17,25,0,27,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,18,21,1,57,7,16,21,1,90,16,0,18,15,121,7,16,25,21,1,1,21,1,18,0,18,21,1,21,21,1,6,21,1,67,8,7,7,3,0,21,1,55,16,19,22,0,3,11,14,21,0,1,0,0,16,0,5,0,68,17,14,21,0,1,0,18,21,1,39,7,16,22,0,4,11,14,21,0,4,21,1,67,16,0,16,0,21,17,21,1,57,16,22,0,5,11,14,21,0,4,0,18,21,1,57,7,16,21,1,58,21,0,5,17,21,1,67,16,21,1,18,21,1,52,7,16,0,5,0,69,17,14,21,0,1,21,1,58,16,21,1,59,21,0,5,17,0,5,0,70,17,14,21,0,1,22,0,6,11,21,1,58,16,22,0,7,11,21,1,88,16,22,0,8,11,21,1,35,15,122,7,21,0,1,21,1,39,16,17,22,0,9,11,14,21,0,9,21,0,3,16,21,1,38,21,0,4,0,18,21,1,81,21,1,6,21,0,7,8,7,16,17,0,5,0,71,17,14,21,0,9,0,18,15,123,7,16,21,0,3,16,22,0,10,11,14,21,0,1,21,1,90,21,0,9,17,21,1,35,21,1,43,21,1,6,0,18,21,1,55,7,8,7,21,0,10,17,21,1,56,16,25,21,0,1,21,1,58,16,21,1,58,0,22,17,0,5,0,72,17,14,21,0,1,0,18,21,1,9,7,16,21,1,18,21,1,52,7,16,0,5,0,73,17,14,21,0,1,21,1,60,0,27,17,21,1,18,21,1,52,7,16,0,5,0,74,17,14,21,0,1,0,4,21,0,1,0,3,16,22,0,5,11,17,22,0,6,11,14,0,21,22,0,7,11,14,21,0,5,0,18,21,1,88,21,1,4,0,18,15,124,7,8,21,0,4,9,7,16,25,21,0,1,0,0,16,0,5,0,75,17,14,21,1,92,21,1,1,7,22,0,3,11,14,21,0,1,21,0,3,0,18,21,0,3,7,21,1,18,0,18,0,18,21,1,21,21,1,6,21,1,67,8,7,7,7,3,0,21,1,55,16,21,1,55,16,19,3,2,21,1,0,21,1,38,21,1,55,0,22,19,8,16,25,21,0,1,0,0,16,0,5,0,76,17,14,21,0,2,21,1,38,16,21,1,55,0,22,17,22,0,3,11,14,21,0,2,21,1,57,15,125,3,2,21,1,0,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,39,16,21,1,57,21,1,5,21,1,60,8,21,0,4,17,0,5,0,78,17,14,21,0,1,21,1,39,16,21,1,81,21,1,6,21,1,57,8,21,0,4,17,21,1,58,21,0,4,17,21,1,18,21,1,52,7,16,0,5,0,79,17,14,21,0,1,21,1,2,21,1,92,21,0,1,21,1,7,21,1,43,8,7,9,15,126,3,2,21,1,0,21,0,3,8,21,0,2,17,25,21,0,2,21,1,58,16,21,1,58,0,22,17,0,5,0,80,17,14,21,0,1,21,1,39,16,22,0,3,11,21,1,57,21,1,5,21,1,58,8,21,0,2,17,0,5,0,81,17,14,21,0,2,0,18,21,1,9,7,16,21,1,18,21,1,52,7,16,0,5,0,82,17,14,21,0,3,21,1,55,21,1,52,21,1,62,21,1,7,21,1,59,8,19,21,0,2,17,21,1,18,21,1,52,7,16,0,5,0,83,17,14,0,21,21,1,55,21,0,2,17,21,1,54,21,0,3,17,21,1,61,21,0,2,17,22,0,2,12,14,21,0,2,21,1,57,16,21,1,63,21,1,6,21,1,88,8,16,21,1,62,16,21,1,18,21,1,1,21,1,54,21,0,3,21,1,7,0,16,8,19,21,1,61,21,0,2,21,1,7,0,16,8,19,7,0,21,17,21,1,3,0,16,7,21,0,1,21,1,67,16,17,25,21,0,2,0,18,21,0,1,21,1,7,21,1,98,8,7,16,25,21,0,1,21,1,58,21,1,6,0,21,8,21,1,18,21,1,53,7,9,21,1,5,21,1,3,21,1,62,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,21,21,0,3,3,2,15,127,3,2,21,1,0,0,21,21,1,58,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,128,1,22,0,8,11,14,21,0,4,21,1,58,21,1,6,0,21,8,21,1,8,21,0,1,8,9,21,0,8,3,2,0,16,21,0,6,21,1,57,0,22,17,17,25,21,0,1,22,0,2,11,14,21,1,55,21,1,6,0,21,8,21,1,8,15,129,1,8,25,21,0,2,21,1,58,16,21,1,3,21,1,62,7,0,22,17,22,0,5,11,14,21,0,5,21,1,60,0,21,17,0,5,0,84,17,14,21,0,1,21,1,58,16,21,1,60,21,0,5,17,0,5,0,85,17,14,21,0,2,21,1,20,0,22,17,22,0,6,11,21,1,18,21,1,54,7,16,22,0,7,11,14,0,21,21,1,101,21,0,2,21,1,67,16,21,1,7,0,16,8,21,1,5,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,57,16,0,22,0,22,21,1,7,21,1,62,21,1,4,21,1,88,8,8,21,1,54,21,0,7,19,0,18,21,1,61,21,1,6,21,0,7,8,21,1,7,21,0,8,8,7,9,21,1,3,21,1,60,7,0,21,19,21,1,18,21,1,52,7,9,3,2,21,1,0,21,1,55,21,1,6,0,21,8,8,16,0,5,0,86,17,14,21,0,1,21,1,58,16,21,1,3,21,1,62,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,20,21,0,9,17,22,0,10,11,14,21,0,10,21,1,100,21,0,6,17,22,0,11,11,14,21,0,11,21,1,18,21,1,101,21,0,1,21,1,67,16,21,1,7,0,16,8,21,1,7,21,0,4,21,1,6,21,0,2,21,1,67,16,21,1,7,0,16,8,8,8,7,7,16,22,0,12,11,14,21,1,3,0,21,7,21,1,60,21,0,12,21,1,6,21,1,54,21,1,6,21,0,6,21,1,18,21,1,54,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,88,16,0,18,21,0,1,21,1,39,16,21,1,7,0,16,8,7,16,21,1,18,21,1,54,7,21,1,88,9,21,1,7,21,1,67,8,16,21,1,54,21,0,10,21,1,18,21,1,54,7,16,17,0,18,15,130,1,21,1,6,21,0,2,21,1,57,16,8,7,16,25,21,0,1,22,0,2,11,14,21,1,77,21,1,52,7,21,1,63,9,0,19,21,1,52,7,21,1,77,21,1,61,7,9,3,2,0,16,21,0,1,17,22,0,3,11,14,15,131,1,25,21,0,1,21,1,58,16,21,1,60,0,22,17,0,5,0,88,17,14,21,0,1,21,1,104,16,22,0,5,11,14,21,0,1,21,1,57,16,21,1,88,16,0,18,0,22,21,1,1,21,0,1,21,1,58,21,1,55,0,22,19,21,1,8,21,1,40,21,1,55,7,8,16,21,1,43,21,0,5,17,21,1,7,0,16,8,21,1,5,21,1,39,8,0,22,21,1,7,21,1,62,8,19,3,2,21,1,0,21,1,55,21,1,6,0,21,8,8,7,16,21,0,4,21,0,5,17,21,1,43,21,0,5,21,1,107,16,17,25,21,0,2,21,1,58,16,22,0,3,11,14,21,0,1,21,1,58,16,21,1,60,21,0,3,17,0,5,0,89,17,14,21,0,1,21,0,3,21,1,75,21,1,88,8,21,0,2,21,1,39,16,17,21,0,3,21,1,75,21,1,38,8,21,0,2,17,25,21,0,2,21,1,58,16,21,1,59,0,22,17,0,5,0,90,17,14,21,0,1,21,1,39,16,21,1,57,21,1,5,21,1,60,8,21,0,2,17,0,5,0,91,17,14,21,0,2,21,1,67,16,0,18,21,1,10,7,16,21,1,18,21,1,52,7,16,0,5,0,92,17,25,21,0,1,21,1,39,16,21,1,96,21,0,2,17,0,18,21,1,18,21,1,50,7,7,16,21,1,88,16,0,18,21,1,3,21,0,1,7,21,1,99,21,1,43,21,1,6,21,0,2,8,19,7,16,25,21,0,1,21,1,114,21,0,2,17,14,21,0,2,21,1,67,16,22,0,2,12,14,21,0,2,21,1,112,16,21,1,63,16,21,1,18,21,1,61,7,16,21,1,62,21,0,1,21,1,58,16,17,22,0,3,11,14,21,0,3,21,1,55,21,0,2,17,21,1,18,21,1,52,7,16,0,5,0,93,17,14,21,0,1,21,1,115,21,0,3,21,1,88,16,21,1,1,21,1,90,21,1,3,21,1,112,21,1,4,21,1,63,8,7,19,21,0,2,17,21,1,95,21,0,2,17,17,25,21,0,1,21,1,114,21,0,2,17,14,21,0,2,21,1,67,16,22,0,2,12,14,21,0,1,21,1,58,16,22,0,3,11,14,21,0,2,21,0,3,21,1,7,21,1,55,8,21,1,52,21,1,112,19,16,21,1,18,21,1,52,7,16,21,1,124,16,14,21,0,1,21,1,115,21,0,3,21,1,88,16,21,1,1,21,1,90,21,1,3,21,1,112,21,1,4,21,1,63,8,7,19,21,0,2,17,21,1,95,21,0,2,17,21,1,107,16,17,25,21,0,1,21,1,111,21,1,6,21,0,2,8,21,1,119,21,1,7,21,1,40,21,1,70,7,8,9,21,1,5,21,1,111,8,21,0,2,17,25,21,0,1,15,132,1,21,0,5,21,1,122,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,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,38,21,0,1,17,21,1,125,16,14,21,0,6,25,21,0,1,21,1,58,16,21,1,58,0,22,17,21,1,124,16,14,21,0,1,21,1,95,16,22,0,3,11,14,21,0,3,0,18,21,1,10,7,16,21,1,18,21,1,52,7,16,21,1,124,16,14,21,0,3,0,3,16,22,0,4,11,14,0,22,21,1,60,21,0,4,17,21,1,18,21,1,52,7,16,21,1,125,16,14,21,0,4,21,1,63,16,21,1,90,16,22,0,5,11,14,21,0,5,21,1,35,0,27,7,16,21,1,95,21,0,1,21,1,35,21,1,57,7,16,21,1,90,16,17,21,1,43,21,0,5,21,1,95,21,0,3,17,21,1,104,16,17,25,21,0,2,21,1,58,16,21,1,58,0,22,17,21,1,124,16,14,21,0,2,0,18,21,1,10,7,16,21,1,18,21,1,52,7,16,21,1,124,16,14,21,0,1,21,1,95,21,1,5,21,1,43,21,1,6,21,1,104,8,8,21,0,2,21,1,96,16,17,25,21,0,1,0,0,16,21,1,125,16,14,21,0,1,21,1,58,16,21,1,58,0,21,17,21,1,125,16,14,21,0,1,21,1,122,16,25,21,0,2,21,1,58,21,1,5,21,1,62,8,21,0,1,17,22,0,3,11,14,21,0,3,0,22,21,1,7,21,1,60,8,21,1,52,21,1,60,21,1,6,0,21,8,19,16,21,1,125,16,14,21,0,2,0,22,21,1,57,3,2,21,1,123,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,57,16,21,1,60,21,0,4,17,21,1,125,16,14,21,0,1,21,1,43,21,1,81,21,1,6,21,0,4,8,3,2,21,1,123,21,0,3,8,16,21,1,38,21,0,2,17,21,1,125,16,14,21,0,1,21,1,84,21,0,4,17,25,21,0,1,21,1,57,16,21,1,58,0,23,17,21,1,125,16,14,21,0,1,21,1,43,16,21,1,38,21,0,2,17,21,1,125,16,14,21,0,1,21,1,43,0,22,17,25,21,0,1,21,1,57,16,21,1,58,0,22,17,21,1,125,16,14,21,0,1,21,1,43,16,25,21,0,1,21,1,58,16,21,1,58,0,22,17,21,1,124,16,14,21,0,1,0,18,21,1,10,7,16,21,1,18,21,1,52,7,16,21,1,124,16,14,21,0,1,21,1,84,21,1,6,0,22,8,21,1,60,21,1,84,21,1,6,0,27,8,19,21,1,18,21,1,52,7,9,16,21,1,125,16,14,21,0,1,0,3,16,25,21,1,3,21,1,3,0,21,7,0,5,0,96,19,3,1,21,1,95,21,0,1,21,1,43,0,22,17,17,7,21,1,122,21,1,55,21,1,111,21,0,1,21,1,43,0,21,17,19,21,1,122,9,19,25,21,0,1,21,1,129,1,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,21,22,0,7,11,22,0,8,11,14,21,0,6,0,21,21,1,73,15,133,1,8,16,14,21,0,1,22,0,9,11,14,15,134,1,22,0,10,11,14,21,0,7,21,0,10,21,1,1,21,0,4,21,0,2,19,7,16,22,0,11,11,14,21,0,8,21,1,62,16,21,0,10,21,1,1,21,1,130,1,21,0,4,7,21,0,2,19,7,16,22,0,12,11,14,21,0,6,0,21,21,1,73,21,1,3,21,0,11,21,0,12,3,2,7,21,1,122,0,21,21,1,7,21,1,55,8,19,21,1,122,21,1,49,19,8,16,25,21,1,19,21,1,5,0,18,21,0,1,7,8,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,64,16,25,0,22,0,7,21,1,6,17,22,1,6,12,14,21,0,1,0,16,21,1,6,17,25,21,1,8,21,1,7,21,1,5,0,16,21,0,1,17,17,22,1,8,12,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,0,17,16,21,2,18,0,8,21,2,6,21,0,1,0,14,16,21,2,7,0,16,8,0,12,21,0,5,21,2,7,0,16,8,19,8,7,0,22,17,0,5,0,32,17,14,21,0,5,21,2,18,0,8,7,0,22,17,0,17,16,0,18,21,0,1,0,15,16,21,2,7,0,16,8,21,0,4,21,0,2,0,15,16,21,2,7,0,16,8,19,7,16,0,15,21,0,5,17,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,22,0,6,11,14,21,0,1,0,14,16,22,0,7,11,14,21,0,6,0,17,16,21,2,18,0,8,21,2,6,21,0,7,21,2,7,0,16,8,0,12,21,0,5,21,2,7,0,16,8,19,8,7,0,22,17,0,5,0,33,17,14,21,0,6,0,7,21,0,1,0,12,16,17,0,17,16,21,2,18,0,8,21,2,6,0,6,21,2,6,21,0,6,8,21,2,3,0,16,7,21,0,7,19,8,7,0,22,17,22,0,8,11,14,21,0,2,0,15,16,22,0,9,11,14,21,0,1,0,15,16,22,0,10,11,14,21,0,8,0,17,21,2,5,0,18,21,2,3,21,0,10,7,0,16,0,6,21,2,6,0,8,21,2,6,21,0,8,8,8,19,21,0,4,21,0,9,21,2,7,0,16,8,19,7,8,21,0,9,21,2,16,16,17,0,15,16,0,15,21,0,7,17,25,21,0,1,21,2,23,21,0,4,7,21,0,2,17,25,21,0,1,0,18,15,135,1,21,0,2,7,7,16,25,21,0,2,0,18,15,136,1,21,0,1,7,7,16,25,21,1,6,0,8,0,23,17,0,13,21,0,1,21,2,18,21,2,14,7,16,22,1,10,12,0,7,21,0,1,21,2,18,21,2,15,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,3,0,21,7,21,2,13,0,21,21,2,101,21,1,8,21,2,7,0,16,8,21,2,5,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,13,21,2,6,21,1,6,8,8,22,0,6,11,14,0,21,0,12,21,1,6,17,0,6,21,1,6,17,0,2,0,23,17,21,2,15,16,22,0,7,11,0,17,16,0,18,21,2,1,0,6,0,22,19,0,7,21,0,7,19,0,10,0,23,19,7,16,21,2,18,15,137,1,7,21,1,6,0,17,16,17,25,21,0,1,0,18,21,2,10,7,16,21,2,18,0,8,7,0,22,17,0,5,0,36,17,14,0,22,0,7,21,1,3,17,22,0,3,11,14,21,2,1,0,7,21,0,3,19,21,2,3,0,16,7,21,1,3,0,17,16,0,18,0,7,21,2,6,21,0,3,8,7,16,0,19,21,2,1,21,2,3,0,16,7,21,0,1,19,0,12,0,21,19,0,8,0,7,19,0,6,21,2,1,19,7,16,19,22,0,4,11,14,21,0,1,0,19,0,6,7,16,21,2,7,0,16,8,22,0,5,11,14,0,21,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,17,16,0,18,15,138,1,7,16,25,21,0,1,21,2,20,0,22,17,22,0,3,11,21,2,18,0,8,7,0,22,17,22,0,4,11,14,21,0,4,0,17,16,0,15,21,0,3,17,0,18,0,6,21,2,6,0,8,21,2,6,21,0,4,8,8,21,2,3,0,16,7,21,0,1,0,15,16,19,7,21,0,2,17,25,21,0,2,0,18,21,0,1,21,2,7,0,16,8,7,16,25,21,0,1,3,1,25,21,0,1,14,21,1,9,0,16,21,1,12,0,16,21,1,14,17,17,22,0,3,11,14,21,1,14,0,6,0,22,17,22,1,14,12,21,1,13,16,22,1,15,12,14,21,0,3,25,21,0,1,0,12,21,1,15,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,42,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,12,16,21,2,11,0,22,17,0,5,0,43,17,14,21,0,1,21,2,39,16,21,2,16,21,2,5,0,13,8,21,0,2,17,0,5,0,44,17,14,21,0,2,21,2,16,16,22,0,3,11,14,21,0,2,0,15,16,21,2,7,0,16,8,22,0,4,11,14,21,0,1,21,0,3,21,2,12,0,21,17,21,2,8,15,139,1,8,0,21,17,25,21,0,1,21,2,58,21,0,4,17,25,21,0,1,21,2,35,21,2,1,0,22,3,2,21,2,0,21,2,2,8,7,21,1,4,17,21,2,18,21,2,54,7,16,22,0,3,11,14,21,0,3,21,2,55,0,21,17,0,5,0,51,17,14,21,1,4,21,2,57,16,0,17,16,21,2,54,21,1,4,17,21,2,18,21,2,61,7,16,22,0,4,11,14,21,1,3,0,16,21,0,4,17,21,2,133,1,16,22,0,5,11,14,0,30,21,2,55,21,0,5,17,0,5,0,52,17,14,21,2,58,21,2,6,21,2,50,8,0,5,0,53,19,21,2,2,21,2,1,19,22,0,6,11,14,21,0,3,21,2,46,21,1,7,17,21,0,6,21,2,50,21,2,51,3,3,21,2,0,21,0,5,21,2,50,0,23,17,8,16,22,0,7,11,14,21,1,3,21,2,35,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,54,21,0,3,17,21,0,5,21,2,58,0,25,17,21,2,8,21,2,55,21,2,6,21,1,7,8,21,2,8,15,140,1,8,8,16,25,21,1,8,0,17,16,0,18,21,2,2,7,21,2,6,0,1,8,15,141,1,3,2,21,2,0,21,1,7,21,2,55,0,21,17,8,21,0,1,17,25,21,0,1,21,2,10,16,0,5,0,54,17,14,21,0,1,0,17,16,25,21,0,1,21,2,58,16,21,2,58,0,22,17,0,5,0,55,17,14,21,0,1,0,18,21,1,3,7,16,21,2,18,0,18,21,2,21,21,2,6,21,2,67,8,7,7,3,0,21,2,55,16,17,25,21,1,9,21,1,7,21,2,61,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,35,21,0,5,7,21,2,2,21,2,4,0,18,21,0,1,21,2,7,21,0,5,8,7,8,21,2,1,21,2,4,0,18,21,2,1,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,0,21,2,38,21,2,5,21,2,69,8,21,2,59,21,0,4,21,2,51,0,21,17,19,21,2,53,0,21,21,2,59,21,0,4,17,21,2,52,21,1,7,17,19,21,2,66,0,23,19,21,2,18,21,2,61,21,2,6,0,23,21,2,7,21,2,54,8,8,7,9,8,21,0,2,17,25,21,0,2,0,17,16,0,18,21,0,1,21,2,39,16,21,2,7,0,16,8,7,16,22,0,3,11,14,21,0,1,21,2,20,21,0,2,17,22,0,4,11,21,2,18,21,2,54,7,16,22,0,5,11,14,21,0,3,21,2,18,21,2,54,7,16,0,17,16,0,18,21,2,1,21,2,54,21,0,5,19,21,2,61,21,0,5,0,17,16,21,2,67,21,0,4,17,19,21,2,4,0,18,21,0,1,21,2,67,16,21,2,7,0,16,8,7,8,7,16,21,2,67,21,0,3,17,25,21,0,2,21,2,9,16,0,5,0,59,17,14,21,0,1,21,2,57,16,22,0,3,11,14,0,21,21,2,55,21,0,2,17,22,0,4,11,14,21,0,2,21,2,49,16,22,0,5,11,21,2,50,21,0,3,17,22,0,6,11,14,21,0,5,3,1,22,0,7,11,14,0,22,22,0,8,11,14,21,0,6,0,17,16,21,0,4,21,2,8,21,2,61,8,21,0,6,21,2,62,21,0,3,17,17,21,0,1,21,2,58,16,21,2,57,0,22,17,21,2,8,15,142,1,8,21,0,1,17,22,0,9,11,14,21,0,9,0,18,21,0,1,21,2,67,16,21,2,7,0,16,8,7,16,21,0,5,21,2,55,21,0,3,17,21,2,8,15,143,1,21,0,1,7,8,16,21,2,67,21,0,7,17,25,21,0,2,21,2,67,16,21,2,1,21,2,68,21,2,5,0,18,21,2,61,7,8,21,2,63,19,21,1,3,17,21,2,35,21,0,1,21,2,7,21,2,43,21,2,6,0,18,21,2,55,7,8,8,7,16,21,2,56,21,2,67,21,2,39,21,2,4,21,0,1,21,2,39,16,21,2,84,21,2,6,21,2,57,8,21,0,2,17,21,2,7,21,2,21,8,8,19,16,25,21,0,1,21,2,57,21,2,6,21,1,4,8,21,2,8,15,144,1,8,16,14,21,1,5,0,16,0,22,21,2,61,21,1,3,17,22,1,3,12,17,25,21,0,2,21,2,88,16,0,18,21,2,54,21,2,6,21,0,1,21,2,58,21,1,8,17,8,21,2,3,21,2,97,7,21,1,6,19,21,2,39,21,2,7,0,16,8,21,0,1,19,7,16,25,21,0,1,21,2,81,16,0,18,21,2,18,21,2,61,7,7,16,22,0,3,11,14,21,0,3,21,2,84,0,27,17,21,2,90,21,0,1,17,21,2,62,21,0,3,21,2,89,16,0,16,0,21,17,21,2,88,16,17,25,21,0,1,14,21,1,6,0,16,21,1,7,17,21,2,1,0,22,21,2,61,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,58,16,21,2,58,0,22,17,0,5,0,77,17,14,21,0,1,0,18,21,2,57,7,16,25,21,0,2,0,18,21,2,92,21,2,1,7,7,16,21,2,54,21,1,4,21,2,84,0,22,17,21,2,89,16,21,2,21,0,22,3,1,17,0,19,21,2,54,7,16,21,2,89,16,17,21,2,18,0,18,0,18,21,2,61,7,7,7,16,0,18,21,0,1,21,2,20,21,1,4,21,2,57,16,17,21,2,21,21,1,4,21,2,18,21,2,54,7,16,3,1,17,21,2,3,21,2,67,7,21,0,1,17,21,2,7,21,2,43,8,7,16,25,21,0,1,21,2,57,21,2,5,21,2,62,8,21,0,2,17,21,2,54,16,22,0,3,11,14,21,0,1,21,2,57,21,2,5,21,2,50,8,21,0,2,17,22,0,4,11,14,21,0,1,15,145,1,21,2,6,21,2,57,21,2,61,21,0,4,21,2,88,16,21,2,61,0,22,17,21,2,62,16,19,8,21,2,5,15,146,1,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,147,1,21,1,7,3,2,21,2,0,21,2,58,21,2,6,21,1,6,8,8,22,0,5,11,14,0,21,21,0,5,16,25,15,148,1,22,0,3,11,14,0,27,21,0,3,0,22,21,2,61,21,0,1,17,17,21,2,61,0,22,17,25,21,0,2,21,2,102,21,0,1,21,2,7,21,1,13,8,7,16,25,21,0,2,21,2,58,16,21,2,3,21,2,62,7,0,22,17,22,0,3,11,14,21,0,3,21,2,60,0,21,17,0,5,0,87,17,14,21,0,1,21,2,19,16,21,2,1,21,2,4,21,0,3,21,2,75,0,21,8,8,21,2,1,21,0,3,21,2,75,21,2,55,8,3,2,21,2,0,21,0,3,21,2,55,0,21,17,8,21,2,5,0,18,21,2,39,7,8,21,1,3,9,3,2,21,2,0,21,0,2,21,2,57,16,21,2,55,0,21,17,8,15,149,1,3,2,21,2,0,21,2,67,21,2,4,21,2,57,8,21,2,55,0,26,19,21,2,5,21,2,52,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,9,16,0,5,0,97,17,14,21,0,1,21,2,50,21,1,8,17,22,1,8,12,14,21,0,1,21,2,51,21,1,7,17,22,1,7,12,25,21,0,1,21,2,61,0,21,17,21,2,88,16,21,2,95,21,1,9,3,1,17,0,19,21,2,2,21,2,4,21,0,4,8,7,16,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,7,16,22,0,4,11,14,0,21,22,0,5,11,22,0,6,11,22,0,7,11,14,0,25,22,0,8,11,14,21,0,1,0,22,0,12,21,2,7,17,0,7,0,22,17,21,3,8,0,18,0,8,21,3,6,21,2,7,8,7,8,16,21,3,7,0,16,8,21,3,5,21,1,5,8,22,0,9,11,14,21,0,9,0,21,0,22,0,23,3,4,22,0,10,11,14,0,6,15,150,1,3,2,0,16,21,0,3,0,13,0,26,17,17,22,0,11,11,14,15,151,1,22,0,12,11,14,15,152,1,15,153,1,21,0,12,3,3,21,3,0,15,154,1,8,22,0,13,11,14,21,0,1,0,18,21,0,1,21,3,7,15,155,1,8,7,16,25,21,1,6,21,1,7,0,12,21,0,1,17,21,3,8,15,156,1,8,16,25,21,0,1,0,22,0,7,21,1,3,17,21,3,12,21,0,2,17,21,3,8,21,3,40,21,0,0,21,3,6,21,0,2,0,6,0,22,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,21,3,62,21,0,1,17,0,17,16,0,18,21,2,6,0,1,16,7,16,21,3,21,22,2,6,13,14,21,2,7,25,21,0,1,21,3,49,21,2,7,17,0,18,21,2,6,21,3,7,0,16,8,7,16,25,21,0,2,21,3,20,0,22,17,22,0,3,11,21,3,21,22,1,7,13,14,21,0,3,21,3,18,21,3,54,7,16,22,1,8,12,21,3,1,21,3,4,0,17,8,0,18,21,3,61,7,21,3,54,19,21,0,1,17,25,21,1,6,21,3,62,21,1,5,17,21,3,54,21,1,8,17,0,17,16,0,18,21,0,4,0,1,16,21,3,67,16,0,16,0,21,17,7,16,21,3,21,21,3,3,21,3,21,7,3,2,21,3,0,21,1,4,8,21,0,1,21,3,67,16,17,25,21,0,1,22,2,4,12,21,3,3,0,16,7,21,2,6,17,22,2,5,12,14,0,27,22,2,3,12,25,21,0,2,0,18,21,0,1,21,3,7,0,16,8,7,16,25,21,0,1,21,3,58,21,0,2,17,0,19,21,3,52,7,16,21,3,18,21,3,61,7,16,22,0,3,11,14,21,0,3,21,3,88,16,0,18,21,0,2,21,3,7,0,16,8,7,16,21,3,18,21,3,54,7,16,22,0,4,11,14,21,0,3,21,3,56,21,3,6,21,1,4,8,21,3,8,21,0,2,21,0,1,3,2,21,3,7,21,3,35,0,16,7,8,21,3,4,15,157,1,8,8,16,14,21,0,4,25,21,1,4,21,3,61,21,3,6,21,0,1,8,21,3,5,21,2,5,8,21,1,3,17,21,3,58,21,3,6,0,21,8,21,3,8,21,0,1,21,3,61,0,22,17,21,3,4,21,1,5,8,8,16,25,21,0,1,0,22,21,3,7,21,3,56,8,21,3,8,15,158,1,8,21,0,2,17,25,21,0,2,21,3,105,16,21,3,89,16,22,0,3,11,14,21,0,1,21,3,104,21,0,2,21,3,43,21,0,3,17,17,21,3,3,21,3,62,7,0,22,17,21,3,51,0,21,17,21,3,3,21,3,43,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,75,21,3,38,8,21,0,2,21,3,43,21,0,4,17,17,21,2,2,21,3,8,21,3,54,21,3,6,21,3,62,21,3,6,21,0,4,8,8,21,3,61,21,3,2,19,8,21,0,2,21,3,57,16,17,25,21,0,1,21,1,8,0,7,0,22,17,21,4,8,21,1,9,0,7,0,22,19,21,4,8,15,159,1,8,8,0,22,0,7,21,0,1,17,17,25,21,0,2,0,6,21,1,3,17,22,1,4,12,14,21,0,1,0,6,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,0,6,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,0,13,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,6,0,22,17,22,1,4,12,0,12,21,1,6,17,0,8,0,23,17,0,6,22,1,8,13,14,21,0,2,25,21,0,1,0,6,0,22,17,22,1,7,12,0,12,21,1,5,17,0,6,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,16,21,1,7,21,1,13,21,1,4,17,17,25,0,22,0,6,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,21,0,1,21,4,18,21,4,62,7,16,21,4,54,16,22,2,3,12,14,21,0,1,21,4,18,21,4,50,7,16,21,4,54,21,1,4,17,22,1,4,12,25,0,23,21,4,46,21,0,2,17,21,4,50,16,22,0,3,11,21,4,61,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,16,21,0,5,17,21,2,3,21,0,2,21,4,49,0,23,17,21,4,54,21,0,5,17,21,4,61,21,0,3,17,17,25,21,0,1,14,0,23,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25]) + new Uint8Array([15,1,22,0,0,11,14,15,2,22,0,1,11,14,15,3,0,20,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,12,21,0,7,0,11,8,0,21,3,2,21,0,0,0,0,8,22,0,10,11,14,0,12,21,0,7,0,11,8,0,8,0,13,21,0,7,0,21,8,19,0,21,3,2,21,0,0,0,0,8,22,0,11,11,14,21,0,4,0,13,7,22,0,12,11,14,21,0,12,0,7,0,22,19,0,20,15,12,8,22,0,13,11,14,0,13,0,7,0,22,19,22,0,14,11,14,15,13,0,16,21,0,14,19,0,20,0,11,8,22,0,15,11,14,15,14,0,16,21,0,13,19,0,20,0,7,21,0,5,21,0,15,21,0,5,0,7,8,8,8,22,0,16,11,14,0,22,0,14,0,16,0,21,19,3,2,21,0,0,0,12,21,0,13,0,21,19,8,22,0,17,11,14,15,15,22,0,18,11,14,21,0,18,22,0,19,11,14,0,0,0,7,0,22,19,21,0,9,21,0,13,8,22,0,20,11,14,0,14,21,0,8,15,16,8,22,0,21,11,14,15,17,22,0,22,11,14,15,18,22,0,23,11,14,15,19,22,0,24,11,14,0,13,0,7,21,0,12,19,22,0,25,11,14,0,22,0,15,0,16,0,21,19,21,0,8,0,13,0,8,0,23,19,0,7,0,22,19,15,20,3,2,21,0,0,21,0,1,21,0,5,0,0,8,8,8,3,2,21,0,0,21,0,1,21,0,5,0,14,8,21,0,19,0,8,7,0,22,19,21,0,13,0,21,19,8,22,0,26,11,14,21,0,25,21,0,26,21,0,4,21,0,26,7,0,7,9,3,2,21,0,0,21,0,2,21,0,5,0,0,8,8,15,21,3,3,21,0,0,0,0,21,0,6,0,6,8,8,22,0,27,11,14,15,22,22,0,28,11,14,15,23,22,0,29,11,14,0,12,21,0,13,0,21,19,21,0,9,15,24,8,22,0,30,11,14,0,12,21,0,13,0,21,19,21,0,9,15,25,8,22,0,31,11,14,15,26,22,0,32,11,14,15,27,22,0,33,11,14,15,28,22,0,34,11,14,15,29,22,0,35,11,14,15,30,22,0,36,11,14,0,0,21,0,6,0,12,8,0,21,3,2,21,0,1,21,0,5,0,0,8,0,12,3,2,0,12,21,0,6,0,12,8,0,21,3,2,0,14,21,0,6,21,0,36,0,12,7,8,21,0,19,0,8,7,0,22,19,0,21,3,2,15,31,3,5,21,0,19,15,32,7,16,22,0,37,11,14,0,21,15,33,3,2,21,0,0,0,0,8,22,0,38,11,14,21,0,37,0,20,21,0,38,8,22,0,39,11,14,21,0,37,0,7,0,22,19,0,20,3,0,0,14,3,2,21,0,0,0,0,8,8,22,0,40,11,14,15,34,22,0,41,11,14,15,35,22,0,42,11,14,0,22,21,0,42,21,0,32,8,21,0,7,21,0,20,8,22,0,43,11,14,21,0,43,0,20,21,0,43,21,0,7,0,21,8,8,22,0,44,11,14,0,0,21,0,9,0,15,21,0,5,21,0,17,8,21,0,13,0,21,19,21,0,9,15,36,8,8,22,0,45,11,14,15,37,22,0,46,11,14,21,0,24,0,9,7,22,0,47,11,14,21,0,24,0,10,7,22,0,48,11,14,21,0,4,21,0,47,21,0,8,21,0,48,8,7,0,20,0,23,21,0,47,16,21,0,8,21,0,48,8,8,22,0,49,11,14,21,0,24,15,38,0,20,0,7,21,0,1,3,2,21,0,0,0,13,21,0,7,0,21,8,8,8,7,22,0,50,11,14,21,0,24,15,39,0,20,21,0,15,8,7,22,0,51,11,14,21,0,24,15,40,0,20,0,7,21,0,5,21,0,51,21,0,5,0,7,8,8,8,7,22,0,52,11,14,21,0,24,0,8,7,0,20,21,0,46,0,21,7,8,22,0,53,11,14,21,0,24,0,8,0,7,0,6,19,7,0,20,21,0,46,0,22,7,8,22,0,54,11,14,21,0,24,0,8,0,20,21,0,14,0,7,21,0,13,19,21,0,7,0,21,8,8,7,22,0,55,11,14,21,0,24,21,0,12,0,7,0,22,19,7,0,20,15,41,8,22,0,56,11,14,21,0,24,0,13,0,7,0,22,19,7,0,20,21,0,45,8,22,0,57,11,14,21,0,24,0,12,0,7,0,22,19,7,0,20,21,0,17,8,22,0,58,11,14,21,0,24,0,12,7,0,20,0,12,8,22,0,59,11,14,21,0,24,21,0,12,7,0,20,21,0,4,0,21,7,0,5,0,46,19,8,22,0,60,11,14,21,0,24,0,13,7,0,20,21,0,4,0,21,7,0,5,0,47,19,8,22,0,61,11,14,21,0,24,0,6,7,22,0,62,11,14,21,0,24,0,7,7,22,0,63,11,14,21,0,63,21,0,62,0,22,19,22,0,64,11,14,21,0,62,0,21,3,2,21,0,63,0,21,3,2,21,0,55,0,22,3,2,21,0,47,0,22,3,2,21,0,48,0,22,3,2,21,0,49,0,22,3,2,21,0,53,0,22,3,2,21,0,54,0,21,3,2,21,0,64,0,22,3,2,21,0,50,0,21,3,2,21,0,51,0,28,3,2,21,0,52,0,29,3,2,21,0,56,0,21,3,2,21,0,61,0,22,3,2,21,0,59,0,22,3,2,21,0,60,0,22,3,2,21,0,57,0,21,3,2,21,0,58,0,21,3,2,3,18,21,0,19,15,42,7,21,0,4,0,21,7,0,5,0,48,19,3,1,0,16,0,21,17,17,22,0,65,11,14,15,43,0,15,3,2,21,0,0,0,0,8,22,0,66,11,14,15,44,22,0,67,11,14,0,15,0,20,21,0,66,8,22,0,68,11,14,15,45,22,0,69,11,14,15,46,0,20,15,47,8,22,0,70,11,14,21,0,70,21,0,5,21,0,57,8,22,0,71,11,14,15,48,22,0,72,11,14,15,49,22,0,73,11,14,21,0,73,22,0,74,11,14,15,50,22,0,75,11,14,21,0,75,22,0,76,11,14,15,51,22,0,77,11,14,21,0,77,22,0,78,11,14,21,0,68,21,0,6,21,0,22,8,15,52,3,2,21,0,0,21,0,59,21,0,56,0,22,19,21,0,6,21,0,54,8,8,22,0,79,11,14,15,53,22,0,80,11,14,15,54,22,0,81,11,14,21,0,80,0,20,21,0,81,8,22,0,82,11,14,15,55,22,0,83,11,14,15,56,22,0,84,11,14,21,0,83,0,20,21,0,84,8,22,0,85,11,14,15,57,22,0,86,11,14,21,0,44,21,0,7,21,0,29,8,22,0,87,11,14,21,0,58,21,0,59,0,21,19,21,0,63,0,22,19,21,0,42,15,58,15,59,3,2,21,0,0,15,60,8,8,22,0,88,11,14,21,0,86,0,20,21,0,69,8,22,0,89,11,14,0,21,21,0,42,21,0,34,8,0,20,21,0,33,8,22,0,90,11,14,21,0,88,0,20,21,0,29,8,22,0,91,11,14,21,0,68,21,0,5,21,0,58,8,21,0,56,0,21,19,21,0,9,15,61,15,62,3,2,21,0,0,0,18,21,0,59,7,21,0,58,0,22,19,21,0,19,21,0,54,7,9,0,22,3,2,21,0,0,21,0,59,21,0,58,0,22,19,8,8,8,22,0,92,11,14,15,63,22,0,93,11,14,15,64,22,0,94,11,14,15,65,22,0,95,11,14,21,0,79,0,20,21,0,92,8,22,0,96,11,14,21,0,95,0,20,21,0,94,8,22,0,97,11,14,15,66,22,0,98,11,14,21,0,98,15,67,3,2,21,0,0,21,0,2,21,0,5,21,0,68,21,0,5,0,18,0,0,7,8,8,21,0,19,21,0,54,7,9,8,22,0,99,11,14,21,0,99,21,0,7,21,0,68,21,0,1,3,2,21,0,0,0,0,8,8,22,0,100,11,14,15,68,22,0,101,11,14,15,69,22,0,102,11,14,15,70,22,0,103,11,14,15,71,22,0,104,11,14,21,0,104,21,0,27,7,0,20,0,21,21,0,28,21,0,27,8,8,22,0,105,11,14,21,0,104,21,0,4,21,0,27,7,7,0,20,0,22,21,0,28,21,0,4,21,0,27,7,8,8,22,0,106,11,14,15,72,22,0,107,11,14,0,4,21,0,7,21,0,36,0,22,7,8,22,0,108,11,14,15,73,22,0,109,11,14,21,0,109,21,0,1,21,0,5,0,19,21,0,62,7,8,21,0,4,21,0,63,7,0,22,19,21,0,4,21,0,44,7,21,0,4,21,0,91,21,0,5,21,0,105,21,0,5,21,0,108,8,8,7,19,7,22,0,110,11,14,15,74,22,0,111,11,14,21,0,107,0,22,7,0,20,21,0,110,8,22,0,112,11,14,21,0,4,21,0,107,0,21,7,7,0,20,21,0,109,21,0,1,7,8,22,0,113,11,14,21,0,111,0,20,21,0,91,21,0,7,21,0,113,8,8,22,0,114,11,14,15,75,22,0,115,11,14,15,76,22,0,116,11,14,15,77,22,0,117,11,14,15,78,22,0,118,11,14,21,0,117,0,20,21,0,30,8,22,0,119,11,14,21,0,105,21,0,5,21,0,105,8,21,0,44,21,0,63,21,0,1,19,21,0,4,21,0,112,7,19,22,0,120,11,14,15,79,22,0,121,11,14,21,0,121,0,20,21,0,120,8,22,0,122,11,14,21,0,100,0,20,21,0,68,0,16,0,21,19,8,22,0,123,11,14,15,80,22,0,124,11,14,0,5,21,0,7,0,94,8,22,0,125,11,14,0,5,21,0,7,0,95,8,22,0,126,11,14,15,81,22,0,127,11,14,15,82,22,0,128,1,11,14,15,83,22,0,129,1,11,14,21,0,62,21,0,4,21,0,63,7,0,20,21,0,62,8,21,0,63,21,0,63,21,0,55,21,0,4,21,0,47,7,0,20,21,0,1,8,21,0,47,21,0,47,21,0,48,21,0,24,0,2,7,21,0,49,21,0,4,21,0,48,7,0,20,0,23,21,0,8,21,0,48,8,8,21,0,53,21,0,4,21,0,47,7,0,20,21,0,53,21,0,127,21,0,1,8,8,21,0,54,21,0,1,21,0,63,0,22,19,21,0,47,21,0,4,21,0,63,7,19,0,20,21,0,54,21,0,127,21,0,1,8,8,21,0,64,21,0,64,21,0,56,0,21,21,0,5,21,0,125,8,0,20,15,84,8,21,0,1,21,0,1,21,0,2,21,0,39,21,0,5,21,0,126,8,21,0,2,21,0,1,19,0,20,21,0,1,8,21,0,96,15,85,0,20,0,21,21,0,5,21,0,125,8,8,21,0,71,15,86,0,20,15,87,8,21,0,82,0,21,21,0,5,21,0,125,8,0,20,21,0,82,21,0,127,21,0,123,21,0,7,0,27,8,8,8,21,0,85,0,21,21,0,5,21,0,125,8,0,20,21,0,85,21,0,127,21,0,123,8,8,21,0,89,0,21,21,0,5,21,0,125,8,0,20,21,0,89,21,0,127,21,0,40,8,8,21,0,90,21,0,90,21,0,7,21,0,63,8,0,20,21,0,90,8,21,0,119,21,0,118,0,20,21,0,31,8,21,0,91,0,21,21,0,5,21,0,125,8,0,20,15,88,8,21,0,97,21,0,129,1,0,20,21,0,128,1,8,3,42,21,0,68,21,0,7,21,0,58,21,0,4,21,0,47,7,0,23,19,21,0,4,21,0,96,7,0,23,19,8,16,21,0,119,16,15,89,16,22,0,130,1,11,14,15,90,22,0,131,1,11,14,15,91,22,0,132,1,11,14,21,0,132,1,22,0,133,1,11,14,21,0,56,21,0,112,21,0,5,21,0,123,8,21,0,5,21,0,51,21,0,90,21,0,82,3,4,19,22,0,134,1,11,14,21,0,67,0,20,21,0,66,8,22,0,135,1,11,14,15,92,22,0,136,1,11,14,21,0,35,22,0,137,1,11,14,21,0,62,21,0,63,21,0,55,21,0,47,21,0,48,21,0,49,21,0,51,21,0,52,21,0,50,21,0,64,21,0,53,21,0,54,21,0,56,21,0,57,21,0,58,21,0,59,21,0,61,21,0,60,21,0,39,21,0,40,21,0,2,21,0,1,21,0,135,1,21,0,96,21,0,71,21,0,82,21,0,85,21,0,89,21,0,90,21,0,119,21,0,91,21,0,105,21,0,106,21,0,44,21,0,123,21,0,112,21,0,122,21,0,113,21,0,114,21,0,97,0,5,21,0,3,21,0,4,21,0,41,21,0,36,21,0,136,1,21,0,131,1,21,0,19,21,0,78,0,19,21,0,5,21,0,6,21,0,7,21,0,8,21,0,137,1,0,20,21,0,124,21,0,76,21,0,74,21,0,133,1,3,60,25,21,0,1,15,93,21,0,5,0,16,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,94,21,1,1,21,0,4,3,2,0,16,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,0,15,3,0,17,25,21,0,2,21,0,1,3,2,25,21,0,2,21,0,1,3,2,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,31,17,14,21,0,1,22,0,5,11,21,1,17,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,2,0,20,15,95,15,96,3,2,21,1,0,21,0,6,21,1,13,0,21,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,0,17,16,0,18,0,7,21,1,7,0,22,0,7,21,0,6,17,8,7,16,0,18,15,97,7,16,14,21,0,8,25,21,0,2,0,7,21,0,1,21,1,17,16,17,0,17,16,0,18,21,1,4,21,0,1,7,0,16,0,6,21,1,7,21,0,2,8,19,7,16,25,21,0,2,21,1,17,16,22,0,3,11,14,21,0,1,21,1,17,16,0,6,21,0,3,17,0,17,16,0,18,21,0,2,21,1,8,0,16,8,21,1,4,21,0,1,7,0,16,21,0,3,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,3,8,8,7,16,25,15,98,22,0,2,11,14,15,99,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,12,21,1,6,21,1,14,8,8,21,0,2,21,0,1,7,3,2,21,1,0,0,12,21,1,6,0,12,8,8,25,15,100,21,0,1,7,22,0,2,11,14,21,0,1,15,101,15,102,3,2,21,1,0,0,0,21,1,6,21,1,14,8,8,0,20,0,18,21,0,2,7,8,21,1,23,21,0,2,7,3,3,21,1,0,0,0,21,1,6,0,6,8,8,25,21,0,1,21,1,26,21,0,2,17,25,21,0,1,0,14,21,1,6,21,1,101,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,19,21,1,102,21,0,1,0,15,16,21,1,8,0,16,8,21,1,8,21,1,27,21,1,7,21,0,2,0,15,16,21,1,8,0,16,8,8,8,7,7,16,22,0,4,11,14,0,21,21,1,4,21,0,4,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,34,17,14,21,0,1,21,1,17,16,22,0,6,11,14,21,0,1,21,1,21,0,22,17,21,1,19,0,8,7,0,22,17,22,0,7,11,14,21,0,1,0,15,16,22,0,8,11,14,0,21,22,0,9,11,22,0,10,11,14,21,0,8,0,21,0,18,21,1,10,7,21,1,19,0,8,7,0,22,19,3,2,21,1,0,21,0,6,21,1,13,0,24,17,0,8,0,22,0,12,21,0,7,17,17,8,16,21,1,1,21,1,9,21,0,1,21,1,8,15,103,8,8,16,0,7,0,22,17,22,0,11,11,14,21,0,1,0,18,21,0,10,21,1,8,0,7,8,0,7,21,1,7,21,0,9,8,3,2,0,16,21,0,5,17,7,0,4,21,1,7,0,3,8,9,15,104,21,0,4,7,3,2,21,1,0,21,0,11,8,16,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,35,17,14,21,0,1,21,1,17,16,22,0,3,11,14,21,0,1,21,0,3,21,1,13,0,21,17,21,1,9,15,105,8,16,25,21,0,1,21,1,17,16,22,0,3,11,14,21,0,1,21,1,21,0,22,17,22,0,4,11,21,1,19,0,8,7,0,22,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,1,4,21,0,1,0,15,16,7,0,16,0,8,21,1,7,21,0,5,8,21,1,8,0,6,8,19,7,21,0,5,0,17,16,0,15,21,0,4,17,17,25,21,0,1,0,12,16,21,1,4,0,7,7,0,22,17,22,0,3,11,14,21,0,1,0,14,16,22,0,4,11,14,21,0,4,0,16,21,0,3,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,0,4,21,1,8,0,16,8,7,16,22,0,6,11,14,21,0,6,21,1,19,0,8,7,0,22,17,0,17,16,0,15,21,0,6,17,0,18,21,1,4,21,0,1,0,15,16,7,0,16,0,8,21,1,7,21,0,5,8,21,1,8,0,6,8,19,7,21,0,5,0,17,16,17,25,21,0,2,0,0,16,0,5,0,37,17,14,21,0,2,0,18,21,1,10,7,16,0,15,16,21,1,19,0,8,7,0,22,17,0,5,0,38,17,14,21,0,1,21,1,17,16,22,0,3,11,14,21,0,2,0,18,21,1,14,21,1,7,21,0,3,8,0,8,0,13,21,1,7,21,0,3,0,7,16,8,19,7,16,0,15,16,21,1,19,0,8,7,0,22,17,0,5,0,39,17,14,21,0,1,15,106,15,107,3,2,21,1,0,21,0,1,0,12,16,0,12,0,22,17,8,21,0,2,0,18,21,1,1,21,1,14,0,21,19,0,8,21,0,3,19,0,6,21,1,1,19,7,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,40,17,14,21,0,1,21,1,17,16,22,0,3,11,14,21,0,1,21,1,43,21,0,3,0,17,16,0,18,0,7,21,1,7,0,22,0,7,21,0,3,17,8,7,16,17,25,21,0,2,21,1,10,16,0,5,0,41,17,14,21,0,1,21,1,17,16,22,0,3,11,14,21,0,3,0,9,21,0,2,17,21,1,15,16,0,8,21,0,3,17,0,7,22,0,2,13,14,21,0,1,21,1,43,21,0,3,0,17,16,0,18,21,1,1,0,13,21,0,2,0,7,21,0,3,17,19,0,8,21,0,3,19,0,7,21,1,1,19,0,6,21,0,2,19,7,16,17,25,21,0,1,0,14,16,22,0,6,11,21,1,19,0,8,7,0,22,17,22,0,7,11,0,17,16,22,0,8,11,14,21,0,1,21,0,5,21,1,6,21,0,4,8,21,0,2,17,22,0,9,11,14,21,0,8,0,15,21,0,6,17,21,0,5,16,22,0,10,11,14,15,108,0,15,3,2,0,16,21,0,10,0,0,16,17,22,0,11,11,14,21,0,9,21,0,11,16,22,0,9,12,14,21,0,10,21,0,11,16,22,0,10,12,14,21,0,10,0,21,21,1,28,21,1,25,8,16,22,0,12,11,14,21,1,4,21,0,10,7,0,16,21,0,12,21,1,8,0,16,8,19,21,0,7,3,2,21,1,0,0,13,21,1,7,21,0,12,21,1,17,16,8,8,22,0,13,11,14,0,21,22,0,14,11,21,0,13,16,22,0,15,11,14,21,0,8,0,18,21,0,1,0,15,16,21,1,8,0,16,8,15,109,3,2,21,1,0,15,110,8,7,16,0,15,21,0,6,17,25,21,1,20,21,1,6,21,1,23,21,0,1,7,0,20,0,18,21,0,1,7,8,8,25,21,0,1,21,1,36,21,1,37,7,21,0,2,17,0,15,16,21,1,19,0,8,7,0,22,17,25,21,0,2,0,16,0,22,17,21,0,1,3,2,21,1,0,21,0,2,0,16,0,21,17,8,25,21,0,1,0,15,16,0,18,21,1,38,7,16,21,1,19,0,7,0,8,0,13,19,0,7,21,1,2,19,7,0,21,17,0,6,0,22,17,25,0,27,21,1,75,21,0,1,8,25,21,0,1,22,0,3,11,14,15,111,15,112,3,2,21,1,0,21,1,2,21,1,5,21,1,39,21,1,13,21,0,2,19,8,8,25,21,0,1,0,15,16,0,16,0,21,17,21,1,40,16,22,0,3,11,14,21,0,1,0,15,16,0,18,21,1,40,21,1,39,21,0,3,19,7,16,21,1,19,0,8,7,0,22,17,0,5,0,45,17,14,21,0,3,21,1,19,0,8,7,0,22,17,0,17,16,0,15,21,0,3,17,0,18,21,1,4,21,1,66,21,1,8,0,16,8,7,7,21,0,1,17,25,21,1,43,21,1,7,21,0,1,21,1,28,21,1,27,21,1,4,21,1,27,7,3,2,0,16,21,0,1,17,8,8,25,21,0,2,21,1,47,21,0,1,17,21,1,15,16,0,8,21,0,2,17,0,7,21,0,1,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,14,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,13,21,0,2,17,17,25,21,0,1,3,1,0,15,3,0,17,25,21,0,1,21,0,2,0,16,0,22,17,3,2,21,1,0,15,113,21,0,2,0,16,0,21,17,7,8,25,21,0,1,3,1,25,21,0,2,21,1,59,16,21,1,60,0,22,17,0,5,0,49,17,14,21,0,2,21,1,66,16,22,0,3,11,14,21,0,3,0,18,21,1,11,7,16,21,1,64,16,22,0,4,11,21,1,19,21,1,62,7,16,22,0,5,11,14,21,0,5,21,1,60,0,22,17,0,5,0,50,17,14,21,0,1,21,1,66,16,22,0,6,11,21,1,58,16,22,0,7,11,14,21,0,3,21,1,19,21,1,55,7,15,114,3,2,21,1,0,21,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,21,1,58,21,0,8,17,21,1,9,15,115,8,16,0,15,21,0,3,17,25,15,116,22,0,3,11,14,15,117,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,0,0,0,8,16,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,21,1,5,21,1,68,8,21,1,1,21,1,5,21,1,56,8,21,1,36,0,16,7,21,1,58,21,1,8,21,1,4,21,1,50,21,1,62,0,22,19,21,1,63,21,1,2,19,7,8,19,0,22,0,21,3,2,0,20,0,23,3,1,8,19,25,21,0,1,21,1,72,21,0,5,7,21,0,2,17,22,0,6,11,21,1,57,0,21,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,118,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,72,21,0,5,7,21,1,36,21,1,63,21,1,8,21,1,51,8,21,1,63,21,1,52,0,21,19,3,2,21,1,0,21,1,1,21,1,61,0,21,19,8,7,21,1,59,21,1,6,21,1,70,8,19,21,0,2,17,22,0,6,11,14,15,119,22,0,7,11,14,21,1,1,21,1,56,9,21,0,7,21,1,1,0,18,21,1,56,7,9,3,3,21,1,0,21,1,59,21,1,8,21,1,60,8,21,1,62,0,22,19,21,1,55,0,21,21,1,8,21,1,57,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,16,21,1,7,21,1,58,21,1,4,21,1,63,7,0,22,19,8,16,17,21,1,36,21,0,4,7,21,0,2,21,0,7,21,0,6,0,16,0,21,17,17,17,21,1,57,16,25,21,0,1,21,1,59,16,21,1,61,0,22,17,0,5,0,56,17,14,21,0,1,21,1,41,21,1,56,7,16,21,1,19,21,0,4,7,21,0,2,17,25,21,0,1,21,1,40,21,1,6,21,1,70,8,21,0,2,17,22,0,3,11,14,21,0,3,0,18,21,1,58,7,16,22,0,4,11,21,1,19,21,1,52,7,0,22,17,22,0,5,11,14,21,0,4,21,1,63,21,0,5,17,21,1,60,0,22,17,21,1,19,21,1,53,7,16,0,5,0,57,17,14,21,0,3,21,1,36,21,1,44,21,1,7,0,22,21,1,63,21,0,5,17,0,17,16,21,1,8,21,1,62,8,8,7,21,0,5,21,1,64,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,19,21,1,39,7,16,0,5,0,58,17,14,21,0,3,21,1,36,0,22,21,1,1,0,16,0,21,19,3,2,21,1,0,21,1,2,8,7,21,0,4,21,1,59,21,0,5,17,17,21,1,19,21,1,62,7,16,22,0,7,11,14,21,0,1,21,1,68,21,1,6,21,1,22,8,21,0,2,17,21,1,68,21,0,6,0,16,0,21,17,21,1,22,21,0,7,3,1,17,17,25,15,120,22,0,3,11,14,21,0,1,21,1,68,21,1,68,21,1,40,21,1,5,21,1,22,21,1,7,21,1,1,21,1,58,21,1,6,21,1,63,8,21,0,2,19,21,1,52,0,21,19,0,17,21,1,5,0,18,0,22,7,8,9,8,8,19,16,0,21,21,1,42,21,0,3,8,21,0,2,17,25,21,0,1,21,1,59,16,21,1,61,0,22,17,0,5,0,60,17,14,21,0,1,21,1,58,16,21,1,62,0,22,17,0,17,16,0,18,21,0,1,21,1,8,21,1,80,8,7,16,25,21,0,1,21,1,40,16,21,1,58,21,1,8,21,1,63,8,21,1,52,0,21,19,0,17,21,1,5,0,18,0,22,7,8,9,21,1,4,21,1,22,7,21,1,1,19,21,1,82,21,1,2,19,21,0,2,21,1,58,16,17,22,0,3,11,14,21,0,1,21,1,82,21,0,2,21,1,51,21,0,3,17,21,1,52,21,0,3,21,1,63,16,17,21,1,62,0,21,21,1,57,21,0,2,17,21,1,48,0,27,17,21,1,55,21,0,3,17,17,17,25,21,0,1,21,1,59,16,21,1,61,0,22,17,0,5,0,61,17,14,21,0,1,21,1,58,16,21,1,62,0,22,17,0,17,16,0,18,21,0,1,21,1,8,21,1,83,8,7,16,25,21,0,1,0,0,16,0,5,0,62,17,14,21,0,2,21,1,59,16,21,1,60,0,22,17,0,5,0,63,17,14,21,0,1,21,1,40,16,21,1,58,21,1,6,21,1,61,8,21,0,2,17,0,5,0,64,17,14,21,0,2,21,1,68,16,0,18,21,1,11,7,16,21,1,19,21,1,53,7,16,0,5,0,65,17,14,21,0,1,21,1,40,16,21,1,82,21,0,2,21,1,58,16,17,22,0,3,11,14,21,0,3,21,1,62,0,22,17,21,1,61,21,0,2,17,21,1,19,21,1,53,7,16,0,5,0,66,17,14,21,0,1,21,0,2,21,1,58,16,21,1,56,0,21,17,21,1,9,15,121,8,21,0,2,17,25,21,0,1,21,1,87,21,1,7,21,1,41,21,0,2,7,8,16,25,21,0,1,21,1,58,21,1,6,21,1,59,8,21,0,2,17,0,5,0,67,17,14,21,0,1,21,1,87,21,0,2,17,25,21,0,2,21,1,59,16,21,1,56,0,21,17,25,0,27,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,18,21,1,58,7,16,21,1,91,16,0,18,15,122,7,16,25,21,1,1,21,1,19,0,18,21,1,22,21,1,7,21,1,68,8,7,7,3,0,21,1,56,16,19,22,0,3,11,14,21,0,1,0,0,16,0,5,0,68,17,14,21,0,1,0,18,21,1,40,7,16,22,0,4,11,14,21,0,4,21,1,68,16,0,16,0,21,17,21,1,58,16,22,0,5,11,14,21,0,4,0,18,21,1,58,7,16,21,1,59,21,0,5,17,21,1,68,16,21,1,19,21,1,53,7,16,0,5,0,69,17,14,21,0,1,21,1,59,16,21,1,60,21,0,5,17,0,5,0,70,17,14,21,0,1,22,0,6,11,21,1,59,16,22,0,7,11,21,1,89,16,22,0,8,11,21,1,36,15,123,7,21,0,1,21,1,40,16,17,22,0,9,11,14,21,0,9,21,0,3,16,21,1,39,21,0,4,0,18,21,1,82,21,1,7,21,0,7,8,7,16,17,0,5,0,71,17,14,21,0,9,0,18,15,124,7,16,21,0,3,16,22,0,10,11,14,21,0,1,21,1,91,21,0,9,17,21,1,36,21,1,44,21,1,7,0,18,21,1,56,7,8,7,21,0,10,17,21,1,57,16,25,21,0,1,21,1,59,16,21,1,59,0,22,17,0,5,0,72,17,14,21,0,1,0,18,21,1,10,7,16,21,1,19,21,1,53,7,16,0,5,0,73,17,14,21,0,1,21,1,61,0,27,17,21,1,19,21,1,53,7,16,0,5,0,74,17,14,21,0,1,0,4,21,0,1,0,3,16,22,0,5,11,17,22,0,6,11,14,0,21,22,0,7,11,14,21,0,5,0,18,21,1,89,21,1,5,0,18,15,125,7,8,21,0,4,9,7,16,25,21,0,1,0,0,16,0,5,0,75,17,14,21,1,93,21,1,1,7,22,0,3,11,14,21,0,1,21,0,3,0,18,21,0,3,7,21,1,19,0,18,0,18,21,1,22,21,1,7,21,1,68,8,7,7,7,3,0,21,1,56,16,21,1,56,16,19,3,2,21,1,0,21,1,39,21,1,56,0,22,19,8,16,25,21,0,1,0,0,16,0,5,0,76,17,14,21,0,2,21,1,39,16,21,1,56,0,22,17,22,0,3,11,14,21,0,2,21,1,58,15,126,3,2,21,1,0,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,40,16,21,1,58,21,1,6,21,1,61,8,21,0,4,17,0,5,0,78,17,14,21,0,1,21,1,40,16,21,1,82,21,1,7,21,1,58,8,21,0,4,17,21,1,59,21,0,4,17,21,1,19,21,1,53,7,16,0,5,0,79,17,14,21,0,1,21,1,2,21,1,93,21,0,1,21,1,8,21,1,44,8,7,9,15,127,3,2,21,1,0,21,0,3,8,21,0,2,17,25,21,0,2,21,1,59,16,21,1,59,0,22,17,0,5,0,80,17,14,21,0,1,21,1,40,16,22,0,3,11,21,1,58,21,1,6,21,1,59,8,21,0,2,17,0,5,0,81,17,14,21,0,2,0,18,21,1,10,7,16,21,1,19,21,1,53,7,16,0,5,0,82,17,14,21,0,3,21,1,56,21,1,53,21,1,63,21,1,8,21,1,60,8,19,21,0,2,17,21,1,19,21,1,53,7,16,0,5,0,83,17,14,0,21,21,1,56,21,0,2,17,21,1,55,21,0,3,17,21,1,62,21,0,2,17,22,0,2,12,14,21,0,2,21,1,58,16,21,1,64,21,1,7,21,1,89,8,16,21,1,63,16,21,1,19,21,1,1,21,1,55,21,0,3,21,1,8,0,16,8,19,21,1,62,21,0,2,21,1,8,0,16,8,19,7,0,21,17,21,1,4,0,16,7,21,0,1,21,1,68,16,17,25,21,0,2,0,18,21,0,1,21,1,8,21,1,99,8,7,16,25,21,0,1,21,1,59,21,1,7,0,21,8,21,1,19,21,1,54,7,9,21,1,6,21,1,4,21,1,63,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,21,21,0,3,3,2,15,128,1,3,2,21,1,0,0,21,21,1,59,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,129,1,22,0,8,11,14,21,0,4,21,1,59,21,1,7,0,21,8,21,1,9,21,0,1,8,9,21,0,8,3,2,0,16,21,0,6,21,1,58,0,22,17,17,25,21,0,1,22,0,2,11,14,21,1,56,21,1,7,0,21,8,21,1,9,15,130,1,8,25,21,0,2,21,1,59,16,21,1,4,21,1,63,7,0,22,17,22,0,5,11,14,21,0,5,21,1,61,0,21,17,0,5,0,84,17,14,21,0,1,21,1,59,16,21,1,61,21,0,5,17,0,5,0,85,17,14,21,0,2,21,1,21,0,22,17,22,0,6,11,21,1,19,21,1,55,7,16,22,0,7,11,14,0,21,21,1,102,21,0,2,21,1,68,16,21,1,8,0,16,8,21,1,6,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,58,16,0,22,0,22,21,1,8,21,1,63,21,1,5,21,1,89,8,8,21,1,55,21,0,7,19,0,18,21,1,62,21,1,7,21,0,7,8,21,1,8,21,0,8,8,7,9,21,1,4,21,1,61,7,0,21,19,21,1,19,21,1,53,7,9,3,2,21,1,0,21,1,56,21,1,7,0,21,8,8,16,0,5,0,86,17,14,21,0,1,21,1,59,16,21,1,4,21,1,63,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,21,21,0,9,17,22,0,10,11,14,21,0,10,21,1,101,21,0,6,17,22,0,11,11,14,21,0,11,21,1,19,21,1,102,21,0,1,21,1,68,16,21,1,8,0,16,8,21,1,8,21,0,4,21,1,7,21,0,2,21,1,68,16,21,1,8,0,16,8,8,8,7,7,16,22,0,12,11,14,21,1,4,0,21,7,21,1,61,21,0,12,21,1,7,21,1,55,21,1,7,21,0,6,21,1,19,21,1,55,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,89,16,0,18,21,0,1,21,1,40,16,21,1,8,0,16,8,7,16,21,1,19,21,1,55,7,21,1,89,9,21,1,8,21,1,68,8,16,21,1,55,21,0,10,21,1,19,21,1,55,7,16,17,0,18,15,131,1,21,1,7,21,0,2,21,1,58,16,8,7,16,25,21,0,1,22,0,2,11,14,21,1,78,21,1,53,7,21,1,64,9,0,19,21,1,53,7,21,1,78,21,1,62,7,9,3,2,0,16,21,0,1,17,22,0,3,11,14,15,132,1,25,21,0,1,21,1,59,16,21,1,61,0,22,17,0,5,0,88,17,14,21,0,1,21,1,105,16,22,0,5,11,14,21,0,1,21,1,58,16,21,1,89,16,0,18,0,22,21,1,1,21,0,1,21,1,59,21,1,56,0,22,19,21,1,9,21,1,41,21,1,56,7,8,16,21,1,44,21,0,5,17,21,1,8,0,16,8,21,1,6,21,1,40,8,0,22,21,1,8,21,1,63,8,19,3,2,21,1,0,21,1,56,21,1,7,0,21,8,8,7,16,21,0,4,21,0,5,17,21,1,44,21,0,5,21,1,108,16,17,25,21,0,2,21,1,59,16,22,0,3,11,14,21,0,1,21,1,59,16,21,1,61,21,0,3,17,0,5,0,89,17,14,21,0,1,21,0,3,21,1,76,21,1,89,8,21,0,2,21,1,40,16,17,21,0,3,21,1,76,21,1,39,8,21,0,2,17,25,21,0,2,21,1,59,16,21,1,60,0,22,17,0,5,0,90,17,14,21,0,1,21,1,40,16,21,1,58,21,1,6,21,1,61,8,21,0,2,17,0,5,0,91,17,14,21,0,2,21,1,68,16,0,18,21,1,11,7,16,21,1,19,21,1,53,7,16,0,5,0,92,17,25,21,0,1,21,1,40,16,21,1,97,21,0,2,17,0,18,21,1,19,21,1,51,7,7,16,21,1,89,16,0,18,21,1,4,21,0,1,7,21,1,100,21,1,44,21,1,7,21,0,2,8,19,7,16,25,21,0,1,21,1,115,21,0,2,17,14,21,0,2,21,1,68,16,22,0,2,12,14,21,0,2,21,1,113,16,21,1,64,16,21,1,19,21,1,62,7,16,21,1,63,21,0,1,21,1,59,16,17,22,0,3,11,14,21,0,3,21,1,56,21,0,2,17,21,1,19,21,1,53,7,16,0,5,0,93,17,14,21,0,1,21,1,116,21,0,3,21,1,89,16,21,1,1,21,1,91,21,1,4,21,1,113,21,1,5,21,1,64,8,7,19,21,0,2,17,21,1,96,21,0,2,17,17,25,21,0,1,21,1,115,21,0,2,17,14,21,0,2,21,1,68,16,22,0,2,12,14,21,0,1,21,1,59,16,22,0,3,11,14,21,0,2,21,0,3,21,1,8,21,1,56,8,21,1,53,21,1,113,19,16,21,1,19,21,1,53,7,16,21,1,125,16,14,21,0,1,21,1,116,21,0,3,21,1,89,16,21,1,1,21,1,91,21,1,4,21,1,113,21,1,5,21,1,64,8,7,19,21,0,2,17,21,1,96,21,0,2,17,21,1,108,16,17,25,21,0,1,21,1,112,21,1,7,21,0,2,8,21,1,120,21,1,8,21,1,41,21,1,71,7,8,9,21,1,6,21,1,112,8,21,0,2,17,25,21,0,1,15,133,1,21,0,5,21,1,123,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,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,39,21,0,1,17,21,1,126,16,14,21,0,6,25,21,0,1,21,1,59,16,21,1,59,0,22,17,21,1,125,16,14,21,0,1,21,1,96,16,22,0,3,11,14,21,0,3,0,18,21,1,11,7,16,21,1,19,21,1,53,7,16,21,1,125,16,14,21,0,3,0,3,16,22,0,4,11,14,0,22,21,1,61,21,0,4,17,21,1,19,21,1,53,7,16,21,1,126,16,14,21,0,4,21,1,64,16,21,1,91,16,22,0,5,11,14,21,0,5,21,1,36,0,27,7,16,21,1,96,21,0,1,21,1,36,21,1,58,7,16,21,1,91,16,17,21,1,44,21,0,5,21,1,96,21,0,3,17,21,1,105,16,17,25,21,0,2,21,1,59,16,21,1,59,0,22,17,21,1,125,16,14,21,0,2,0,18,21,1,11,7,16,21,1,19,21,1,53,7,16,21,1,125,16,14,21,0,1,21,1,96,21,1,6,21,1,44,21,1,7,21,1,105,8,8,21,0,2,21,1,97,16,17,25,21,0,1,0,0,16,21,1,126,16,14,21,0,1,21,1,59,16,21,1,59,0,21,17,21,1,126,16,14,21,0,1,21,1,123,16,25,21,0,2,21,1,59,21,1,6,21,1,63,8,21,0,1,17,22,0,3,11,14,21,0,3,0,22,21,1,8,21,1,61,8,21,1,53,21,1,61,21,1,7,0,21,8,19,16,21,1,126,16,14,21,0,2,0,22,21,1,58,3,2,21,1,124,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,58,16,21,1,61,21,0,4,17,21,1,126,16,14,21,0,1,21,1,44,21,1,82,21,1,7,21,0,4,8,3,2,21,1,124,21,0,3,8,16,21,1,39,21,0,2,17,21,1,126,16,14,21,0,1,21,1,85,21,0,4,17,25,21,0,1,21,1,58,16,21,1,59,0,23,17,21,1,126,16,14,21,0,1,21,1,44,16,21,1,39,21,0,2,17,21,1,126,16,14,21,0,1,21,1,44,0,22,17,25,21,0,1,21,1,58,16,21,1,59,0,22,17,21,1,126,16,14,21,0,1,21,1,44,16,25,21,0,1,21,1,59,16,21,1,59,0,22,17,21,1,125,16,14,21,0,1,0,18,21,1,11,7,16,21,1,19,21,1,53,7,16,21,1,125,16,14,21,0,1,21,1,85,21,1,7,0,22,8,21,1,61,21,1,85,21,1,7,0,27,8,19,21,1,19,21,1,53,7,9,16,21,1,126,16,14,21,0,1,0,3,16,25,21,1,4,21,1,4,0,21,7,0,5,0,96,19,3,1,21,1,96,21,0,1,21,1,44,0,22,17,17,7,21,1,123,21,1,56,21,1,112,21,0,1,21,1,44,0,21,17,19,21,1,123,9,19,25,21,0,1,21,1,130,1,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,21,22,0,7,11,22,0,8,11,14,21,0,6,0,21,21,1,74,15,134,1,8,16,14,21,0,1,22,0,9,11,14,15,135,1,22,0,10,11,14,21,0,7,21,0,10,21,1,1,21,0,4,21,0,2,19,7,16,22,0,11,11,14,21,0,8,21,1,63,16,21,0,10,21,1,1,21,1,131,1,21,0,4,7,21,0,2,19,7,16,22,0,12,11,14,21,0,6,0,21,21,1,74,21,1,4,21,0,11,21,0,12,3,2,7,21,1,123,0,21,21,1,8,21,1,56,8,19,21,1,123,21,1,50,19,8,16,25,21,1,20,21,1,6,0,18,21,0,1,7,8,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,65,16,25,0,22,0,7,21,1,6,17,22,1,6,12,14,21,0,1,0,16,21,1,6,17,25,21,1,8,21,1,7,21,1,5,0,16,21,0,1,17,17,22,1,8,12,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,0,17,16,21,2,19,0,8,21,2,7,21,0,1,0,14,16,21,2,8,0,16,8,0,12,21,0,5,21,2,8,0,16,8,19,8,7,0,22,17,0,5,0,32,17,14,21,0,5,21,2,19,0,8,7,0,22,17,0,17,16,0,18,21,0,1,0,15,16,21,2,8,0,16,8,21,0,4,21,0,2,0,15,16,21,2,8,0,16,8,19,7,16,0,15,21,0,5,17,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,22,0,6,11,14,21,0,1,0,14,16,22,0,7,11,14,21,0,6,0,17,16,21,2,19,0,8,21,2,7,21,0,7,21,2,8,0,16,8,0,12,21,0,5,21,2,8,0,16,8,19,8,7,0,22,17,0,5,0,33,17,14,21,0,6,0,7,21,0,1,0,12,16,17,0,17,16,21,2,19,0,8,21,2,7,0,6,21,2,7,21,0,6,8,21,2,4,0,16,7,21,0,7,19,8,7,0,22,17,22,0,8,11,14,21,0,2,0,15,16,22,0,9,11,14,21,0,1,0,15,16,22,0,10,11,14,21,0,8,0,17,21,2,6,0,18,21,2,4,21,0,10,7,0,16,0,6,21,2,7,0,8,21,2,7,21,0,8,8,8,19,21,0,4,21,0,9,21,2,8,0,16,8,19,7,8,21,0,9,21,2,17,16,17,0,15,16,0,15,21,0,7,17,25,21,0,1,21,2,24,21,0,4,7,21,0,2,17,25,21,0,1,0,18,15,136,1,21,0,2,7,7,16,25,21,0,2,0,18,15,137,1,21,0,1,7,7,16,25,21,1,6,0,8,0,23,17,0,13,21,0,1,21,2,19,21,2,15,7,16,22,1,10,12,0,7,21,0,1,21,2,19,21,2,16,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,4,0,21,7,21,2,14,0,21,21,2,102,21,1,8,21,2,8,0,16,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,13,21,2,7,21,1,6,8,8,22,0,6,11,14,0,21,0,12,21,1,6,17,0,6,21,1,6,17,0,2,0,23,17,21,2,16,16,22,0,7,11,0,17,16,0,18,21,2,1,0,6,0,22,19,0,7,21,0,7,19,0,10,0,23,19,7,16,21,2,19,15,138,1,7,21,1,6,0,17,16,17,25,21,0,1,0,18,21,2,11,7,16,21,2,19,0,8,7,0,22,17,0,5,0,36,17,14,0,22,0,7,21,1,3,17,22,0,3,11,14,21,2,1,0,7,21,0,3,19,21,2,4,0,16,7,21,1,3,0,17,16,0,18,0,7,21,2,7,21,0,3,8,7,16,0,19,21,2,1,21,2,4,0,16,7,21,0,1,19,0,12,0,21,19,0,8,0,7,19,0,6,21,2,1,19,7,16,19,22,0,4,11,14,21,0,1,0,19,0,6,7,16,21,2,8,0,16,8,22,0,5,11,14,0,21,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,17,16,0,18,15,139,1,7,16,25,21,0,1,21,2,21,0,22,17,22,0,3,11,21,2,19,0,8,7,0,22,17,22,0,4,11,14,21,0,4,0,17,16,0,15,21,0,3,17,0,18,0,6,21,2,7,0,8,21,2,7,21,0,4,8,8,21,2,4,0,16,7,21,0,1,0,15,16,19,7,21,0,2,17,25,21,0,2,0,18,21,0,1,21,2,8,0,16,8,7,16,25,21,0,1,3,1,25,21,0,1,14,21,1,9,0,16,21,1,12,0,16,21,1,14,17,17,22,0,3,11,14,21,1,14,0,6,0,22,17,22,1,14,12,21,1,13,16,22,1,15,12,14,21,0,3,25,21,0,1,0,12,21,1,15,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,42,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,12,16,21,2,12,0,22,17,0,5,0,43,17,14,21,0,1,21,2,40,16,21,2,17,21,2,6,0,13,8,21,0,2,17,0,5,0,44,17,14,21,0,2,21,2,17,16,22,0,3,11,14,21,0,2,0,15,16,21,2,8,0,16,8,22,0,4,11,14,21,0,1,21,0,3,21,2,13,0,21,17,21,2,9,15,140,1,8,0,21,17,25,21,0,1,21,2,59,21,0,4,17,25,21,0,1,21,2,36,21,2,1,0,22,3,2,21,2,0,21,2,2,8,7,21,1,4,17,21,2,19,21,2,55,7,16,22,0,3,11,14,21,0,3,21,2,56,0,21,17,0,5,0,51,17,14,21,1,4,21,2,58,16,0,17,16,21,2,55,21,1,4,17,21,2,19,21,2,62,7,16,22,0,4,11,14,21,1,3,0,16,21,0,4,17,21,2,134,1,16,22,0,5,11,14,0,30,21,2,56,21,0,5,17,0,5,0,52,17,14,21,2,59,21,2,7,21,2,51,8,0,5,0,53,19,21,2,2,21,2,1,19,22,0,6,11,14,21,0,3,21,2,47,21,1,7,17,21,0,6,21,2,51,21,2,52,3,3,21,2,0,21,0,5,21,2,51,0,23,17,8,16,22,0,7,11,14,21,1,3,21,2,36,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,55,21,0,3,17,21,0,5,21,2,59,0,25,17,21,2,9,21,2,56,21,2,7,21,1,7,8,21,2,9,15,141,1,8,8,16,25,21,1,8,0,17,16,0,18,21,2,2,7,21,2,7,0,1,8,15,142,1,3,2,21,2,0,21,1,7,21,2,56,0,21,17,8,21,0,1,17,25,21,0,1,21,2,11,16,0,5,0,54,17,14,21,0,1,0,17,16,25,21,0,1,21,2,59,16,21,2,59,0,22,17,0,5,0,55,17,14,21,0,1,0,18,21,1,3,7,16,21,2,19,0,18,21,2,22,21,2,7,21,2,68,8,7,7,3,0,21,2,56,16,17,25,21,1,9,21,1,7,21,2,62,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,36,21,0,5,7,21,2,2,21,2,5,0,18,21,0,1,21,2,8,21,0,5,8,7,8,21,2,1,21,2,5,0,18,21,2,1,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,0,21,2,39,21,2,6,21,2,70,8,21,2,60,21,0,4,21,2,52,0,21,17,19,21,2,54,0,21,21,2,60,21,0,4,17,21,2,53,21,1,7,17,19,21,2,67,0,23,19,21,2,19,21,2,62,21,2,7,0,23,21,2,8,21,2,55,8,8,7,9,8,21,0,2,17,25,21,0,2,0,17,16,0,18,21,0,1,21,2,40,16,21,2,8,0,16,8,7,16,22,0,3,11,14,21,0,1,21,2,21,21,0,2,17,22,0,4,11,21,2,19,21,2,55,7,16,22,0,5,11,14,21,0,3,21,2,19,21,2,55,7,16,0,17,16,0,18,21,2,1,21,2,55,21,0,5,19,21,2,62,21,0,5,0,17,16,21,2,68,21,0,4,17,19,21,2,5,0,18,21,0,1,21,2,68,16,21,2,8,0,16,8,7,8,7,16,21,2,68,21,0,3,17,25,21,0,2,21,2,10,16,0,5,0,59,17,14,21,0,1,21,2,58,16,22,0,3,11,14,0,21,21,2,56,21,0,2,17,22,0,4,11,14,21,0,2,21,2,50,16,22,0,5,11,21,2,51,21,0,3,17,22,0,6,11,14,21,0,5,3,1,22,0,7,11,14,0,22,22,0,8,11,14,21,0,6,0,17,16,21,0,4,21,2,9,21,2,62,8,21,0,6,21,2,63,21,0,3,17,17,21,0,1,21,2,59,16,21,2,58,0,22,17,21,2,9,15,143,1,8,21,0,1,17,22,0,9,11,14,21,0,9,0,18,21,0,1,21,2,68,16,21,2,8,0,16,8,7,16,21,0,5,21,2,56,21,0,3,17,21,2,9,15,144,1,21,0,1,7,8,16,21,2,68,21,0,7,17,25,21,0,2,21,2,68,16,21,2,1,21,2,69,21,2,6,0,18,21,2,62,7,8,21,2,64,19,21,1,3,17,21,2,36,21,0,1,21,2,8,21,2,44,21,2,7,0,18,21,2,56,7,8,8,7,16,21,2,57,21,2,68,21,2,40,21,2,5,21,0,1,21,2,40,16,21,2,85,21,2,7,21,2,58,8,21,0,2,17,21,2,8,21,2,22,8,8,19,16,25,21,0,1,21,2,58,21,2,7,21,1,4,8,21,2,9,15,145,1,8,16,14,21,1,5,0,16,0,22,21,2,62,21,1,3,17,22,1,3,12,17,25,21,0,2,21,2,89,16,0,18,21,2,55,21,2,7,21,0,1,21,2,59,21,1,8,17,8,21,2,4,21,2,98,7,21,1,6,19,21,2,40,21,2,8,0,16,8,21,0,1,19,7,16,25,21,0,1,21,2,82,16,0,18,21,2,19,21,2,62,7,7,16,22,0,3,11,14,21,0,3,21,2,85,0,27,17,21,2,91,21,0,1,17,21,2,63,21,0,3,21,2,90,16,0,16,0,21,17,21,2,89,16,17,25,21,0,1,14,21,1,6,0,16,21,1,7,17,21,2,1,0,22,21,2,62,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,59,16,21,2,59,0,22,17,0,5,0,77,17,14,21,0,1,0,18,21,2,58,7,16,25,21,0,2,0,18,21,2,93,21,2,1,7,7,16,21,2,55,21,1,4,21,2,85,0,22,17,21,2,90,16,21,2,22,0,22,3,1,17,0,19,21,2,55,7,16,21,2,90,16,17,21,2,19,0,18,0,18,21,2,62,7,7,7,16,0,18,21,0,1,21,2,21,21,1,4,21,2,58,16,17,21,2,22,21,1,4,21,2,19,21,2,55,7,16,3,1,17,21,2,4,21,2,68,7,21,0,1,17,21,2,8,21,2,44,8,7,16,25,21,0,1,21,2,58,21,2,6,21,2,63,8,21,0,2,17,21,2,55,16,22,0,3,11,14,21,0,1,21,2,58,21,2,6,21,2,51,8,21,0,2,17,22,0,4,11,14,21,0,1,15,146,1,21,2,7,21,2,58,21,2,62,21,0,4,21,2,89,16,21,2,62,0,22,17,21,2,63,16,19,8,21,2,6,15,147,1,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,148,1,21,1,7,3,2,21,2,0,21,2,59,21,2,7,21,1,6,8,8,22,0,5,11,14,0,21,21,0,5,16,25,15,149,1,22,0,3,11,14,0,27,21,0,3,0,22,21,2,62,21,0,1,17,17,21,2,62,0,22,17,25,21,0,2,21,2,103,21,0,1,21,2,8,21,1,13,8,7,16,25,21,0,2,21,2,59,16,21,2,4,21,2,63,7,0,22,17,22,0,3,11,14,21,0,3,21,2,61,0,21,17,0,5,0,87,17,14,21,0,1,21,2,20,16,21,2,1,21,2,5,21,0,3,21,2,76,0,21,8,8,21,2,1,21,0,3,21,2,76,21,2,56,8,3,2,21,2,0,21,0,3,21,2,56,0,21,17,8,21,2,6,0,18,21,2,40,7,8,21,1,3,9,3,2,21,2,0,21,0,2,21,2,58,16,21,2,56,0,21,17,8,15,150,1,3,2,21,2,0,21,2,68,21,2,5,21,2,58,8,21,2,56,0,26,19,21,2,6,21,2,53,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,10,16,0,5,0,97,17,14,21,0,1,21,2,51,21,1,8,17,22,1,8,12,14,21,0,1,21,2,52,21,1,7,17,22,1,7,12,25,21,0,1,21,2,62,0,21,17,21,2,89,16,21,2,96,21,1,9,3,1,17,0,19,21,2,2,21,2,5,21,0,4,8,7,16,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,7,16,22,0,4,11,14,0,21,22,0,5,11,22,0,6,11,22,0,7,11,14,0,25,22,0,8,11,14,21,0,1,0,22,0,12,21,2,7,17,0,7,0,22,17,21,3,9,0,18,0,8,21,3,7,21,2,7,8,7,8,16,21,3,8,0,16,8,21,3,6,21,1,5,8,22,0,9,11,14,21,0,9,0,21,0,22,0,23,3,4,22,0,10,11,14,0,6,15,151,1,3,2,0,16,21,0,3,0,13,0,26,17,17,22,0,11,11,14,15,152,1,22,0,12,11,14,15,153,1,15,154,1,21,0,12,3,3,21,3,0,15,155,1,8,22,0,13,11,14,21,0,1,0,18,21,0,1,21,3,8,15,156,1,8,7,16,25,21,1,6,21,1,7,0,12,21,0,1,17,21,3,9,15,157,1,8,16,25,21,0,1,0,22,0,7,21,1,3,17,21,3,13,21,0,2,17,21,3,9,21,3,41,21,0,0,21,3,7,21,0,2,0,6,0,22,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,21,3,63,21,0,1,17,0,17,16,0,18,21,2,6,0,1,16,7,16,21,3,22,22,2,6,13,14,21,2,7,25,21,0,1,21,3,50,21,2,7,17,0,18,21,2,6,21,3,8,0,16,8,7,16,25,21,0,2,21,3,21,0,22,17,22,0,3,11,21,3,22,22,1,7,13,14,21,0,3,21,3,19,21,3,55,7,16,22,1,8,12,21,3,1,21,3,5,0,17,8,0,18,21,3,62,7,21,3,55,19,21,0,1,17,25,21,1,6,21,3,63,21,1,5,17,21,3,55,21,1,8,17,0,17,16,0,18,21,0,4,0,1,16,21,3,68,16,0,16,0,21,17,7,16,21,3,22,21,3,4,21,3,22,7,3,2,21,3,0,21,1,4,8,21,0,1,21,3,68,16,17,25,21,0,1,22,2,4,12,21,3,4,0,16,7,21,2,6,17,22,2,5,12,14,0,27,22,2,3,12,25,21,0,2,0,18,21,0,1,21,3,8,0,16,8,7,16,25,21,0,1,21,3,59,21,0,2,17,0,19,21,3,53,7,16,21,3,19,21,3,62,7,16,22,0,3,11,14,21,0,3,21,3,89,16,0,18,21,0,2,21,3,8,0,16,8,7,16,21,3,19,21,3,55,7,16,22,0,4,11,14,21,0,3,21,3,57,21,3,7,21,1,4,8,21,3,9,21,0,2,21,0,1,3,2,21,3,8,21,3,36,0,16,7,8,21,3,5,15,158,1,8,8,16,14,21,0,4,25,21,1,4,21,3,62,21,3,7,21,0,1,8,21,3,6,21,2,5,8,21,1,3,17,21,3,59,21,3,7,0,21,8,21,3,9,21,0,1,21,3,62,0,22,17,21,3,5,21,1,5,8,8,16,25,21,0,1,0,22,21,3,8,21,3,57,8,21,3,9,15,159,1,8,21,0,2,17,25,21,0,2,21,3,106,16,21,3,90,16,22,0,3,11,14,21,0,1,21,3,105,21,0,2,21,3,44,21,0,3,17,17,21,3,4,21,3,63,7,0,22,17,21,3,52,0,21,17,21,3,4,21,3,44,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,76,21,3,39,8,21,0,2,21,3,44,21,0,4,17,17,21,2,2,21,3,9,21,3,55,21,3,7,21,3,63,21,3,7,21,0,4,8,8,21,3,62,21,3,2,19,8,21,0,2,21,3,58,16,17,25,21,0,1,21,1,8,0,7,0,22,17,21,4,9,21,1,9,0,7,0,22,19,21,4,9,15,160,1,8,8,0,22,0,7,21,0,1,17,17,25,21,0,2,0,6,21,1,3,17,22,1,4,12,14,21,0,1,0,6,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,0,6,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,0,13,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,6,0,22,17,22,1,4,12,0,12,21,1,6,17,0,8,0,23,17,0,6,22,1,8,13,14,21,0,2,25,21,0,1,0,6,0,22,17,22,1,7,12,0,12,21,1,5,17,0,6,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,16,21,1,7,21,1,13,21,1,4,17,17,25,0,22,0,6,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,21,0,1,21,4,19,21,4,63,7,16,21,4,55,16,22,2,3,12,14,21,0,1,21,4,19,21,4,51,7,16,21,4,55,21,1,4,17,22,1,4,12,25,0,23,21,4,47,21,0,2,17,21,4,51,16,22,0,3,11,21,4,62,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,16,21,0,5,17,21,2,3,21,0,2,21,4,50,0,23,17,21,4,55,21,0,5,17,21,4,62,21,0,3,17,17,25,21,0,1,14,0,23,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25]) ,provide.concat([0,1,2,32,3,8,-1,Infinity,-Infinity,4,str("Argument to fold must be a list"),str("Equal-rank argument shapes don\'t agree"),str("Argument shape prefixes don\'t agree"),str("Grade argument must have rank at least 1"),str("Replication argument in Indices or Replicate must have rank 1"),str("Amounts to replicate must be natural numbers"),str("Right argument to Select must be an array"),str("Indices in Select must be integers"),str("Select indices out of range"),str("Reverse argument must have rank at least 1"),str("Amount to rotate must be an integer"),str("First-axis function right argument must have rank at least 1"),str("Left argument must have rank at most 1"),str("Left argument length must be at most right argument rank"),str("Elements in Merge argument must have matching shapes"),str("No monadic form: ≥"),str("No monadic form: ≤"),str("Identity not found"),str("Shape argument to Reshape must have rank at most 1"),str("Shape in Reshape must consist of natural numbers"),str("Can\'t compute axis length in Reshape when rest of shape is empty"),str("Shape in Reshape must be a natural number or ∘ ⌊ ⌽ ↑"),str("Shape must be exact when reshaping with ∘"),str("Range argument must consist of natural numbers"),str("Range argument must be a number or list"),str("Insert argument must have rank at least 1"),str("Rank of joined arguments must differ by at most 1"),str("Cell shapes of joined arguments must match"),str("Left argument to Take or Drop must be an integer"),str("Prefixes argument must have rank at least 1"),str("Suffixes argument must have rank at least 1"),str("Windows right argument must be an array"),str("Windows left argument must have rank at most 1"),str("Windows left argument length must be at most right argument rank"),str("Windows left argument must consist of natural numbers"),str("Window length must be at most axis length plus one"),str("Replicate argument lengths must match"),str("Join argument must be an array"),str("Join argument elements must all have the same rank"),str("Join argument element rank must be at least argument rank"),str("Join argument element shapes must be compatible"),str("Grouping argument must be a list"),str("Grouping argument must consist of integers"),str("Grouping argument values cannot be less than ¯1"),str("Group Indices argument must be an array"),str("Group right argument must be an array"),str("Group left argument must consist of lists"),str("Group left argument length must be at most right argument rank"),str("Group argument lengths must be compatible"),str("Indices in compound Pick must be lists"),str("Pick index length must match right argument rank"),str("Pick indices must consist of integers"),str("Pick index out of range"),str("Bins argument must have rank at least 1"),str("Bins right argument rank is too small"),str("Bins left argument must be sorted"),str("Search principal argument must have rank at least 1"),str("Unique mask argument must have rank at least 1"),str("Find left argument rank cannot exceed right argument rank"),str("Left argument to Reorder Axes must have rank at most 1"),str("Reorder Axes left argument length must not exceed right argument rank"),str("Reorder Axes left argument must consist of natural numbers"),str("No such axis in Reorder Axes"),str("Inverse failed"),str("Inverse does not exist"),str("Inverse not found"),str("Repetition numbers must be integers")]) - ,[[0,1,0,137],[2,0,2923,6],[0,0,2950,3],[0,0,2954,3],[0,0,2958,3],[1,0,2962,5],[2,0,2980,6],[2,0,2995,6],[2,0,3014,6],[2,0,3036,6],[2,0,3058,6],[0,0,3090,3],[0,0,3101,3],[0,0,3110,3],[1,0,3119,9],[0,0,3232,3],[0,0,3272,4],[1,1,3348,4],[1,1,3421,3],[0,0,3485,3],[0,0,3496,5],[2,0,3580,12],[0,0,3786,4],[0,0,3835,6],[0,0,3925,7],[0,0,4054,4],[0,0,4210,4],[0,0,4271,4],[2,0,4373,16],[1,1,4603,2],[0,0,4627,3],[0,0,4654,3],[0,0,4680,3],[1,1,4719,2],[2,1,4729,4],[0,0,4765,4],[1,1,4862,2],[0,0,4895,3],[0,0,4922,3],[0,0,4944,3],[0,0,4966,3],[0,0,4977,3],[0,0,5006,3],[0,0,5012,9],[0,0,5163,5],[0,0,5196,3],[0,0,5205,3],[1,1,5211,2],[2,0,5280,10],[2,0,5339,8],[1,0,5532,5],[0,0,5574,8],[0,0,5810,4],[0,0,5891,3],[0,0,5941,4],[0,0,6062,3],[0,0,6112,4],[0,0,6278,3],[0,0,6297,3],[0,0,6331,3],[0,0,6345,7],[0,0,6392,11],[1,0,6657,8],[0,0,6775,4],[0,0,6859,5],[0,0,7018,4],[0,0,7231,3],[0,0,7249,4],[1,0,7321,9],[1,1,7391,3],[1,0,7416,14],[1,1,7851,4],[1,0,7901,6],[0,0,8040,4],[0,0,8108,3],[0,0,8182,3],[0,0,8237,4],[0,0,8366,4],[0,0,8486,3],[2,0,8526,6],[2,0,8555,7],[0,0,8596,6],[0,0,8746,3],[0,0,8816,3],[0,0,8853,5],[0,0,8997,3],[0,0,9044,3],[0,0,9070,3],[0,0,9157,3],[1,1,9212,2],[2,0,9221,13],[1,1,9375,2],[1,1,9389,2],[1,1,9393,2],[0,0,9397,3],[0,0,9409,3],[0,0,9432,3],[1,0,9453,6],[1,0,9570,11],[1,0,9791,5],[0,0,9806,3],[0,0,9821,3],[0,0,9836,3],[1,0,9881,8],[0,0,10020,8],[0,0,10188,5],[0,0,10263,3],[0,0,10280,3],[0,0,10286,4],[0,0,10335,3],[0,0,10345,3],[0,0,10373,5],[1,0,10469,5],[0,0,10480,8],[0,0,10737,3],[0,0,10778,3],[0,0,10798,3],[1,0,10852,6],[0,0,11005,6],[0,0,11133,10],[0,0,11318,3],[0,0,11418,3],[0,0,11460,3],[0,0,11513,4],[0,0,11573,3],[0,0,11604,3],[0,0,11634,3],[0,0,11752,6],[0,0,11859,6],[0,0,11909,4],[0,0,11939,3],[0,0,11958,4],[1,1,12116,2],[0,0,12120,3],[1,0,12163,5],[1,0,12200,5],[1,0,12211,5],[0,0,12222,14],[0,0,12398,3],[0,0,12419,3],[0,0,12473,3],[0,0,12508,3],[0,0,12532,4],[1,0,12592,5],[0,0,12659,3],[0,0,12688,3],[0,0,12705,5],[0,0,12816,3],[0,0,12871,3],[0,0,12895,5],[0,0,13024,3],[0,0,13064,3],[0,0,13147,3],[0,0,13181,3],[0,0,13210,3],[0,0,13228,3],[0,0,13245,3],[0,0,13274,3],[0,0,13317,6],[0,0,13396,3]] + ,[[0,1,0,138],[2,0,2935,6],[0,0,2962,3],[0,0,2966,3],[0,0,2970,3],[1,0,2974,5],[1,0,2982,5],[2,0,3000,6],[2,0,3015,6],[2,0,3034,6],[2,0,3056,6],[2,0,3078,6],[0,0,3110,3],[0,0,3121,3],[0,0,3130,3],[1,0,3139,9],[0,0,3252,3],[0,0,3292,4],[1,1,3368,4],[1,1,3441,3],[0,0,3505,3],[0,0,3516,5],[2,0,3600,12],[0,0,3806,4],[0,0,3855,6],[0,0,3945,7],[0,0,4074,4],[0,0,4230,4],[0,0,4291,4],[2,0,4393,16],[1,1,4623,2],[0,0,4647,3],[0,0,4674,3],[0,0,4700,3],[1,1,4739,2],[2,1,4749,4],[0,0,4785,4],[1,1,4882,2],[0,0,4915,3],[0,0,4942,3],[0,0,4964,3],[0,0,4986,3],[0,0,4997,3],[0,0,5026,3],[0,0,5032,9],[0,0,5183,5],[0,0,5216,3],[0,0,5225,3],[1,1,5231,2],[2,0,5300,10],[2,0,5359,8],[1,0,5552,5],[0,0,5594,8],[0,0,5830,4],[0,0,5911,3],[0,0,5961,4],[0,0,6082,3],[0,0,6132,4],[0,0,6298,3],[0,0,6317,3],[0,0,6351,3],[0,0,6365,7],[0,0,6412,11],[1,0,6677,8],[0,0,6795,4],[0,0,6879,5],[0,0,7038,4],[0,0,7251,3],[0,0,7269,4],[1,0,7342,9],[1,1,7412,3],[1,0,7437,14],[1,1,7872,4],[1,0,7922,6],[0,0,8061,4],[0,0,8129,3],[0,0,8203,3],[0,0,8258,4],[0,0,8387,4],[0,0,8507,3],[2,0,8547,6],[2,0,8576,7],[0,0,8617,6],[0,0,8767,3],[0,0,8837,3],[0,0,8874,5],[0,0,9018,3],[0,0,9065,3],[0,0,9091,3],[0,0,9178,3],[1,1,9233,2],[2,0,9242,13],[1,1,9396,2],[1,1,9410,2],[1,1,9414,2],[0,0,9418,3],[0,0,9430,3],[0,0,9453,3],[1,0,9474,6],[1,0,9591,11],[1,0,9812,5],[0,0,9827,3],[0,0,9842,3],[0,0,9857,3],[1,0,9902,8],[0,0,10041,8],[0,0,10209,5],[0,0,10284,3],[0,0,10301,3],[0,0,10307,4],[0,0,10356,3],[0,0,10366,3],[0,0,10394,5],[1,0,10490,5],[0,0,10501,8],[0,0,10758,3],[0,0,10799,3],[0,0,10819,3],[1,0,10873,6],[0,0,11026,6],[0,0,11154,10],[0,0,11339,3],[0,0,11439,3],[0,0,11481,3],[0,0,11534,4],[0,0,11594,3],[0,0,11625,3],[0,0,11655,3],[0,0,11773,6],[0,0,11880,6],[0,0,11930,4],[0,0,11960,3],[0,0,11979,4],[1,1,12137,2],[0,0,12141,3],[1,0,12184,5],[1,0,12221,5],[1,0,12232,5],[0,0,12243,14],[0,0,12419,3],[0,0,12440,3],[0,0,12494,3],[0,0,12529,3],[0,0,12553,4],[1,0,12613,5],[0,0,12680,3],[0,0,12709,3],[0,0,12726,5],[0,0,12837,3],[0,0,12892,3],[0,0,12916,5],[0,0,13045,3],[0,0,13085,3],[0,0,13168,3],[0,0,13202,3],[0,0,13231,3],[0,0,13249,3],[0,0,13266,3],[0,0,13295,3],[0,0,13338,6],[0,0,13417,3]] ); runtime.map((r,i) => { - let prims = "+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!˜˘¨⌜⁼´˝`∘○⊸⟜⌾⊘◶⎉⚇⍟"; + let prims = "+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!˙˜˘¨⌜⁼´˝`∘○⊸⟜⌾⊘◶⎉⚇⍟"; r.glyph = prims.charAt(i); // Used to format }); // Compiler let compile = run( new Uint8Array([0,72,22,0,0,11,14,0,73,22,0,1,11,14,0,74,22,0,2,11,14,0,75,22,0,3,11,14,0,76,22,0,4,11,14,0,77,22,0,5,11,0,78,0,79,0,80,0,21,21,0,1,17,0,81,0,82,0,83,0,84,0,85,21,0,2,0,86,0,87,0,21,21,0,3,17,0,21,21,0,4,17,21,0,0,0,21,0,88,17,3,13,22,0,6,11,0,21,16,22,0,7,11,14,15,1,22,0,8,11,14,15,2,21,0,7,7,22,0,9,11,14,21,0,6,0,39,0,13,7,16,0,19,0,21,0,53,19,0,23,0,13,19,0,44,0,0,7,9,0,48,0,37,0,39,0,22,7,7,8,16,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,22,0,21,22,0,22,4,13,11,14,21,0,21,0,30,16,0,0,0,54,17,22,0,23,11,14,0,30,0,48,0,1,8,0,12,0,9,0,15,0,47,0,53,8,19,0,30,0,47,0,52,8,19,22,0,24,11,14,21,0,6,0,23,0,55,17,0,39,0,13,7,16,0,42,0,0,7,16,22,0,25,11,14,0,53,0,21,0,58,0,25,16,0,26,16,0,27,0,57,17,17,0,21,21,0,6,0,23,0,56,17,0,39,0,13,7,16,0,21,0,53,17,0,27,16,0,23,21,0,18,0,30,0,52,17,0,1,21,0,25,17,17,17,22,0,26,11,14,0,56,0,53,3,2,0,40,0,1,7,0,56,0,57,0,59,3,3,17,0,20,16,22,0,27,11,14,15,3,22,0,28,11,14,15,4,22,0,29,11,14,0,30,0,47,0,52,8,0,24,0,47,0,52,8,21,0,29,3,3,0,50,0,29,0,31,0,91,0,21,0,96,17,19,0,30,9,8,22,0,30,11,14,15,5,22,0,31,11,14,15,6,22,0,32,11,14,15,7,22,0,33,11,14,15,8,22,0,34,11,14,15,9,22,0,35,11,25,21,0,1,0,33,0,90,0,91,3,2,17,0,42,0,10,7,16,0,8,16,0,36,0,89,17,14,0,53,0,36,0,47,0,21,8,0,92,21,0,1,0,13,16,0,11,0,52,17,0,37,0,27,7,0,93,17,0,94,21,0,1,3,4,17,25,21,0,1,0,48,0,29,8,0,48,0,17,0,51,0,18,0,27,0,13,19,0,45,21,1,8,8,8,8,0,18,0,19,19,22,0,2,11,14,21,0,1,0,28,16,22,0,3,11,14,0,19,0,28,21,0,1,0,29,21,0,3,17,19,0,6,0,52,19,0,37,0,1,7,0,52,19,0,37,0,29,7,21,0,3,19,21,0,2,0,19,19,25,0,95,0,14,21,0,1,17,22,0,3,11,14,0,90,0,14,21,0,1,17,0,9,0,47,0,24,0,47,0,58,8,0,23,0,13,19,8,16,0,27,16,22,0,4,11,14,0,91,0,14,21,0,1,17,22,0,5,11,0,27,16,22,0,6,11,14,21,0,4,21,0,6,0,24,0,60,17,21,0,3,0,27,16,3,3,0,21,16,22,0,7,11,0,28,16,22,0,8,11,14,21,0,7,0,29,21,0,8,17,22,0,7,12,14,21,0,4,0,0,0,58,17,21,0,6,0,24,0,52,17,0,52,0,21,21,1,1,0,14,21,0,1,17,17,0,27,16,0,27,0,47,21,0,3,0,44,0,0,7,16,0,21,0,53,17,0,48,0,29,0,45,0,19,0,21,0,53,19,0,24,0,60,19,0,1,0,19,19,8,8,8,16,3,3,0,21,16,0,29,21,0,8,17,22,0,9,11,14,15,10,0,51,15,11,8,22,0,10,11,14,21,0,9,0,28,21,0,7,17,0,13,0,48,0,21,8,16,0,13,0,37,0,23,7,0,52,19,0,48,21,0,10,8,16,0,24,0,60,17,22,0,11,11,14,21,0,9,0,38,0,21,7,21,0,7,17,0,27,21,0,11,17,22,0,12,11,14,0,20,0,37,0,21,7,21,0,1,0,13,16,19,0,41,0,27,7,9,0,24,0,60,19,22,0,13,11,14,21,0,12,21,0,13,16,22,0,14,11,0,44,0,13,7,16,0,8,16,22,0,15,11,14,21,0,5,0,9,0,47,0,19,0,37,0,21,7,0,53,19,0,24,0,52,19,8,16,0,9,21,0,14,17,0,9,21,0,15,17,22,0,16,11,0,8,16,0,9,22,0,15,13,14,21,0,12,0,27,21,0,3,0,29,21,0,7,0,27,21,0,11,17,17,0,8,16,17,22,0,17,11,14,21,0,17,21,0,13,16,0,44,0,13,7,16,0,2,21,0,17,0,38,0,30,7,16,21,0,13,16,0,37,0,1,7,21,0,16,17,0,44,0,0,7,16,17,0,37,0,1,7,0,52,17,0,37,0,35,7,21,0,1,17,22,0,18,11,0,34,16,22,0,19,11,14,21,0,17,0,38,0,26,0,45,0,30,8,7,16,21,0,13,16,0,27,21,0,15,17,22,0,20,11,14,21,0,1,0,27,21,0,15,17,0,27,0,47,21,0,20,0,8,16,8,0,49,21,1,9,8,16,22,0,21,11,14,21,1,19,21,1,20,21,1,21,3,3,0,39,0,30,7,0,52,17,0,42,0,0,7,16,0,22,21,1,19,0,30,16,17,21,1,24,21,0,21,17,22,0,22,11,0,11,0,47,0,19,0,21,0,53,19,0,23,0,13,19,8,16,22,0,23,11,14,21,1,3,0,13,16,22,0,24,11,14,21,1,21,0,42,0,0,7,16,0,0,0,60,17,0,14,21,0,21,17,22,0,25,11,14,21,0,21,0,15,0,47,21,1,21,0,30,16,0,48,0,0,8,8,0,2,0,18,19,0,1,0,19,19,21,0,24,17,0,35,21,0,23,0,44,0,0,7,16,0,2,21,0,22,0,11,21,0,25,17,17,0,37,0,1,7,0,52,17,17,22,0,26,11,14,21,0,21,0,27,21,0,23,17,0,37,0,1,7,21,1,21,0,30,16,17,0,37,0,3,0,45,0,5,8,7,21,0,24,17,22,0,27,11,14,21,0,26,0,31,16,22,0,28,11,0,11,0,47,0,44,0,6,7,0,21,0,60,19,0,23,0,13,19,8,16,22,0,29,11,14,21,0,27,0,27,21,0,29,17,0,12,0,53,17,22,0,30,11,0,13,16,22,0,31,11,14,21,0,27,0,6,0,53,17,0,14,0,47,0,58,8,0,48,0,9,8,0,0,0,19,19,21,0,22,0,11,0,47,0,19,0,37,0,21,7,0,53,19,0,24,0,52,19,8,16,0,37,0,27,7,21,0,25,17,17,22,0,27,12,14,21,0,21,0,27,0,47,21,0,20,8,0,49,21,0,18,0,31,21,0,19,17,0,0,21,0,31,17,0,0,21,1,25,17,8,16,0,27,0,47,21,0,23,8,0,49,21,0,30,0,28,16,0,28,16,0,29,21,0,28,17,0,0,21,1,25,17,8,16,0,27,21,1,22,21,1,24,21,0,21,17,0,10,21,0,22,17,0,8,16,0,10,21,0,23,17,17,22,0,21,12,14,21,1,13,21,1,24,21,0,21,17,0,9,0,47,0,19,0,10,21,1,15,0,30,16,0,0,0,58,0,54,3,2,17,0,33,21,0,21,17,19,0,21,0,52,19,0,23,0,13,19,8,16,0,8,16,0,37,0,27,7,22,0,21,13,14,21,1,13,21,1,24,21,0,21,17,0,9,21,1,15,0,30,16,0,0,0,56,0,57,3,2,17,0,33,21,0,21,17,0,37,0,21,7,0,52,17,0,24,0,52,17,17,0,8,16,0,37,0,27,7,22,0,21,13,14,21,1,25,0,1,21,0,21,17,21,0,31,0,48,0,11,8,0,9,0,15,0,47,0,53,8,19,16,22,0,32,11,14,21,1,26,0,29,21,0,21,0,5,21,1,25,17,17,0,27,0,47,21,0,32,8,0,49,21,0,27,8,16,22,0,33,11,14,21,1,18,0,30,16,0,37,0,22,7,0,57,17,21,1,24,21,0,21,17,0,2,0,57,17,0,0,22,0,21,13,14,21,0,21,21,0,33,21,0,30,0,8,16,0,42,0,0,7,16,21,0,19,0,21,21,0,26,0,29,21,0,29,0,27,16,0,27,21,0,30,17,17,17,3,4,25,21,1,20,0,30,16,0,0,0,47,0,25,8,0,54,17,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,19,0,30,16,0,48,0,1,8,0,26,0,45,0,42,0,2,0,47,0,61,8,0,48,0,0,8,7,8,9,22,0,7,11,14,21,0,7,0,24,0,47,0,52,8,21,0,7,9,0,1,9,3,2,0,50,0,30,0,14,21,0,3,19,8,22,0,8,11,14,0,24,0,47,0,52,0,48,0,0,8,8,0,53,0,13,0,4,0,61,19,0,3,21,0,7,19,3,2,0,50,0,13,0,11,0,53,19,8,9,0,0,0,23,0,45,21,0,7,8,19,0,47,21,0,4,0,11,16,0,48,0,31,8,8,22,0,9,11,14,0,62,0,63,21,0,9,3,3,0,50,0,29,0,31,21,0,5,21,0,6,3,2,19,0,30,9,8,22,0,10,11,14,21,1,23,0,31,21,0,1,17,0,30,16,22,0,11,11,14,21,0,1,0,23,21,0,11,17,21,0,10,0,24,0,47,0,52,8,21,0,10,9,0,1,9,3,2,0,50,0,30,0,14,21,0,3,19,8,16,22,0,12,11,14,21,0,12,21,0,1,0,13,16,0,11,21,0,11,17,0,51,0,37,0,18,0,24,0,52,0,0,21,0,11,17,19,21,0,8,9,0,4,0,61,19,0,48,0,2,8,7,8,21,0,1,17,25,0,64,22,0,3,11,14,21,0,1,0,6,0,52,17,0,41,0,4,7,21,0,3,17,0,5,16,22,0,4,11,14,21,0,4,0,0,0,52,17,0,44,0,0,7,0,48,0,19,0,21,0,53,19,0,23,0,13,19,0,48,0,27,8,0,1,0,19,0,30,0,60,19,0,25,9,19,8,16,0,28,16,0,28,16,22,0,5,11,14,21,0,1,15,12,21,0,4,17,0,29,21,0,5,17,25,0,40,0,14,7,0,43,15,13,7,0,19,0,45,0,38,0,53,7,8,19,0,30,0,60,19,22,0,3,11,14,15,14,22,0,4,11,14,0,53,21,0,4,0,98,8,0,37,0,52,21,0,4,0,99,8,7,3,2,0,50,0,13,0,46,0,12,8,8,22,0,5,11,14,21,0,1,21,0,5,0,100,3,2,0,50,0,13,0,46,0,5,8,0,11,21,0,3,19,8,21,0,2,17,0,37,0,36,7,0,53,17,25,0,93,0,27,21,0,1,0,13,16,0,11,0,52,17,17,0,21,0,101,17,0,37,0,36,7,0,53,17,25,21,0,2,22,0,3,22,0,4,4,2,11,14,21,1,15,0,30,0,48,0,1,8,0,7,0,58,19,0,4,0,60,19,0,2,21,1,24,19,21,0,1,17,22,0,5,11,0,44,0,0,7,16,22,0,6,11,0,28,16,22,0,7,11,14,21,1,15,0,30,16,0,0,0,58,17,0,37,0,22,7,0,58,17,21,1,24,21,0,1,17,0,2,21,0,5,17,22,0,8,11,14,21,0,1,0,29,0,47,21,0,7,8,0,46,0,27,0,47,0,60,0,48,0,14,8,8,0,37,0,1,7,0,52,19,0,17,0,51,21,1,32,8,0,27,0,47,0,52,0,48,0,14,8,8,19,8,21,0,5,17,14,21,0,6,0,30,21,0,7,0,30,16,17,0,15,0,53,17,0,36,0,102,17,14,21,1,16,21,1,24,21,0,1,17,0,10,0,47,0,26,0,47,0,52,8,8,16,22,0,9,11,14,21,0,9,0,29,0,47,21,0,7,8,0,49,0,26,0,47,0,60,8,8,16,22,0,10,11,14,21,0,10,0,10,21,0,9,17,22,0,11,11,14,21,0,9,0,29,21,0,7,17,0,28,16,0,37,0,29,7,22,0,7,13,14,21,0,11,0,8,16,0,2,22,0,4,13,14,0,53,0,12,21,0,5,17,22,0,12,11,14,21,0,4,0,15,0,52,17,0,10,21,0,4,0,14,0,56,17,0,29,0,47,21,0,7,8,0,49,0,26,0,47,0,60,8,8,16,17,0,19,0,2,0,47,0,13,0,45,0,25,8,0,0,0,52,19,8,0,44,0,6,7,9,0,46,0,14,8,0,10,0,47,0,8,8,19,0,9,0,18,19,21,1,15,0,30,16,0,0,0,52,17,0,14,21,0,1,17,0,11,21,0,11,17,17,0,0,22,0,4,13,14,21,1,13,21,1,24,21,0,1,17,0,10,21,0,9,17,0,10,21,0,12,17,0,29,0,37,0,21,7,0,1,0,21,0,45,0,44,0,0,7,8,19,0,52,19,0,28,0,48,0,28,0,48,0,37,0,29,7,8,0,1,0,37,0,29,7,19,0,29,0,47,0,28,8,0,18,19,8,0,18,0,21,0,60,19,19,21,0,7,17,0,24,0,60,17,0,0,0,52,17,0,44,0,0,7,16,0,28,16,22,0,13,11,14,21,0,8,0,29,21,0,13,17,0,44,0,0,7,16,22,0,14,11,0,28,16,22,0,15,11,14,21,0,15,0,37,0,29,7,22,0,13,13,14,21,0,15,0,37,0,29,7,22,0,14,13,14,21,0,13,0,37,0,29,7,22,0,1,13,14,21,0,8,0,29,21,0,13,17,22,0,16,11,14,0,53,0,11,21,0,16,17,0,27,16,22,0,17,11,14,0,53,0,12,21,0,16,17,22,0,18,11,0,44,0,0,7,16,22,0,19,11,14,0,53,0,48,0,21,8,0,44,0,0,7,9,0,27,0,52,0,21,21,0,18,17,19,0,19,0,21,0,53,19,0,23,0,13,19,0,48,0,1,8,9,22,0,20,11,14,0,14,0,45,21,0,20,8,0,24,0,52,19,0,11,0,53,19,22,0,21,11,14,21,0,1,0,28,21,1,18,0,30,16,0,0,0,57,17,0,0,0,53,0,56,0,54,0,57,3,4,17,17,21,0,21,0,47,0,56,8,0,2,0,58,19,0,6,21,0,21,0,47,0,58,8,19,0,2,0,58,19,0,0,21,0,21,0,47,0,52,8,19,0,21,0,53,19,16,22,0,22,11,14,21,1,27,0,29,21,0,22,17,22,0,23,11,14,21,0,4,0,29,21,0,13,17,0,29,0,47,21,0,17,8,0,49,0,54,0,25,16,0,27,0,47,0,15,0,47,0,58,8,0,0,0,52,19,8,16,0,29,21,0,22,0,24,0,52,17,17,8,16,22,0,4,12,14,21,1,25,0,1,21,0,1,17,22,0,24,11,21,0,3,0,48,0,11,8,0,9,0,15,0,47,0,53,8,19,16,22,0,25,11,0,27,16,22,0,26,11,14,21,0,1,0,29,21,0,26,17,22,0,27,11,14,21,1,18,21,1,24,21,0,1,17,0,27,16,22,0,28,11,14,21,1,14,0,30,16,0,14,21,0,1,17,0,29,21,1,14,21,1,24,21,0,1,17,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,17,22,0,29,11,14,21,0,8,0,1,21,0,5,17,0,29,21,0,13,17,0,44,0,0,7,16,0,28,16,22,0,7,12,14,21,0,13,0,29,21,0,7,17,22,0,30,11,14,21,0,9,0,1,21,0,10,17,0,29,21,0,30,17,0,12,0,27,0,46,0,1,8,0,11,19,0,53,17,0,37,0,3,7,0,58,17,0,0,0,52,17,22,0,31,11,14,21,1,15,0,30,16,0,0,0,57,17,0,14,21,0,1,17,0,29,21,0,7,17,0,27,16,22,0,32,11,14,21,0,9,0,29,21,0,30,17,0,28,16,22,0,33,11,0,37,0,29,7,22,0,7,13,14,21,0,13,0,29,21,0,7,17,22,0,30,12,14,21,0,7,0,37,0,29,7,22,0,1,13,14,21,0,7,0,37,0,29,7,22,0,4,13,14,21,0,30,0,37,0,29,7,22,0,12,13,14,21,0,9,0,12,21,0,10,17,0,29,21,0,30,17,0,27,16,22,0,34,11,14,21,0,7,0,28,16,22,0,35,11,14,21,0,33,0,28,16,0,29,22,0,32,13,14,21,1,13,21,1,24,21,0,1,17,22,0,36,11,14,21,0,9,0,29,21,0,30,17,0,10,21,0,12,17,0,10,21,0,36,17,22,0,37,11,14,21,1,14,0,30,16,0,37,0,22,7,0,58,17,21,1,24,21,0,1,17,22,0,38,11,14,21,0,38,0,10,21,0,37,17,0,1,22,0,4,13,14,0,58,0,16,21,0,4,17,22,0,39,11,14,0,56,0,14,21,0,4,17,0,26,0,52,17,0,10,0,52,0,16,21,0,4,17,17,22,0,40,11,14,21,0,40,0,29,21,0,37,0,26,0,60,17,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,17,22,0,41,11,14,21,0,40,0,26,0,52,17,0,9,21,1,14,0,30,16,0,0,0,52,17,0,14,21,0,1,17,17,0,11,21,0,41,17,22,0,42,11,14,0,56,0,14,21,0,4,17,0,26,0,52,17,0,11,21,0,38,17,0,10,21,0,39,17,22,0,43,11,14,21,0,42,0,10,21,0,43,17,0,8,16,0,26,16,0,2,0,45,0,44,0,6,7,8,0,1,0,18,19,0,47,0,13,0,45,0,25,8,8,16,0,26,16,22,0,44,11,14,21,0,38,0,27,16,21,0,44,0,48,0,29,8,0,0,0,52,19,0,0,0,19,19,16,22,0,45,11,14,0,52,0,1,21,0,45,17,0,37,0,21,7,21,0,1,0,13,16,17,0,41,0,27,7,16,0,24,0,60,17,0,19,0,21,0,53,19,0,23,0,13,19,0,48,0,1,8,16,0,29,21,0,35,17,0,44,0,0,7,16,0,26,0,60,17,22,0,46,11,0,29,21,0,7,17,22,0,47,11,14,21,0,4,0,27,0,47,21,0,47,8,0,49,0,39,0,60,7,8,16,22,0,4,12,14,21,0,43,0,8,16,0,44,0,0,7,0,2,0,45,0,44,0,6,7,8,0,1,0,19,19,21,0,37,19,0,15,0,11,0,7,19,0,58,19,0,9,0,19,19,16,0,9,21,0,37,0,2,0,47,0,13,0,45,0,25,8,0,0,0,52,19,8,0,44,0,6,7,9,0,46,0,15,8,21,0,38,17,17,22,0,48,11,14,21,0,38,0,10,21,0,37,17,0,37,0,21,7,0,53,17,0,24,0,52,17,0,12,21,0,39,17,22,0,49,11,14,21,0,49,0,27,16,0,26,16,22,0,50,11,14,21,0,49,0,26,0,60,17,0,11,21,0,39,17,0,10,0,52,0,14,21,0,4,17,17,0,11,21,0,49,0,26,0,52,17,0,9,21,0,43,17,17,0,9,21,0,41,0,8,16,0,10,21,0,48,17,17,0,11,21,0,47,0,26,0,52,17,17,0,27,16,22,0,51,11,14,0,53,0,14,21,0,4,17,0,11,21,0,43,17,0,10,0,53,0,16,21,0,4,17,0,9,21,0,41,17,17,0,9,21,1,17,0,30,16,0,13,21,0,1,17,17,0,37,0,21,7,0,53,17,0,24,0,52,17,0,29,21,0,51,17,22,0,52,11,14,21,0,3,0,0,21,1,25,17,0,16,21,0,1,17,22,0,53,11,14,21,1,12,0,42,0,0,7,16,0,0,0,60,17,0,15,21,0,1,17,0,10,21,0,53,17,0,27,16,22,0,54,11,14,21,0,1,0,29,21,0,54,17,22,0,55,11,0,34,16,0,9,16,22,0,56,11,14,21,1,15,0,30,16,0,0,0,54,17,0,14,21,0,1,0,27,21,0,12,17,17,22,0,57,11,14,0,52,0,21,21,0,37,17,0,9,21,0,12,0,21,0,52,17,17,0,1,0,53,0,21,21,0,36,17,17,0,44,0,0,7,16,0,27,0,52,0,21,21,0,12,17,17,0,24,0,47,0,1,8,0,1,0,24,19,0,52,17,0,27,21,0,57,17,0,0,0,52,17,22,0,58,11,14,21,0,57,0,21,0,53,17,0,29,0,47,0,44,0,0,7,8,21,0,12,17,0,12,21,0,36,17,0,27,16,22,0,59,11,14,21,1,15,0,30,16,0,0,0,58,17,0,14,21,0,1,17,0,27,16,22,0,60,11,14,21,0,46,0,9,21,0,29,17,0,9,21,0,25,17,22,0,61,11,0,29,21,0,26,17,22,0,62,11,14,21,0,61,21,0,20,16,22,0,63,11,14,21,0,19,0,29,21,0,26,17,0,37,21,0,15,0,29,21,0,17,17,0,21,21,0,1,0,13,16,17,7,0,29,0,27,0,47,21,0,62,8,19,0,21,21,0,15,0,27,21,0,18,17,0,21,0,60,17,0,48,0,29,8,19,16,22,0,64,11,14,21,0,64,0,28,16,0,29,0,47,21,0,27,0,27,0,47,21,0,62,8,0,48,0,21,8,16,22,0,65,11,0,48,0,29,8,0,28,9,8,16,22,0,66,11,14,21,0,64,0,19,0,29,21,0,66,0,27,0,47,0,15,0,47,21,0,26,0,13,16,8,8,16,19,0,13,0,47,0,19,0,21,0,53,19,0,23,0,13,19,8,9,0,46,0,10,8,21,0,65,17,0,42,0,9,7,0,52,17,0,36,0,103,17,14,21,0,66,0,29,0,47,21,0,62,0,37,0,27,7,16,0,1,16,0,21,21,0,62,17,0,48,0,29,0,45,0,44,0,0,7,8,8,0,28,9,8,16,0,27,0,47,21,0,26,0,13,16,0,48,0,11,8,8,16,22,0,66,12,14,21,0,66,0,37,0,29,7,22,0,62,13,14,21,0,27,0,29,21,0,66,17,0,13,0,47,0,19,0,21,0,53,19,0,23,0,13,19,8,0,11,21,0,62,19,0,48,0,19,0,42,0,10,7,0,53,19,0,51,0,37,0,27,0,45,21,1,33,8,7,8,8,16,14,21,0,26,0,29,0,47,21,0,66,8,0,49,0,29,0,47,21,0,62,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,8,8,16,22,0,67,11,14,21,0,24,0,29,21,0,28,17,0,0,0,58,17,0,15,0,47,0,53,8,0,48,0,0,8,16,0,0,21,0,22,0,7,0,58,17,0,2,0,56,17,0,29,21,0,19,0,29,21,0,28,17,17,17,0,21,21,0,61,0,44,0,0,7,16,0,8,0,47,0,2,0,47,21,0,18,8,0,44,0,6,7,9,8,16,0,1,21,0,23,0,29,21,0,19,17,17,0,29,21,0,67,17,17,22,0,68,11,14,21,0,28,0,21,21,0,26,17,22,0,69,11,0,11,16,0,20,0,56,17,0,21,16,22,0,70,11,14,21,0,46,0,29,21,0,69,17,0,0,0,65,17,21,0,28,0,39,0,53,7,16,0,21,21,0,67,21,0,14,0,48,0,29,8,0,46,0,1,8,21,0,26,17,17,21,0,68,3,3,22,0,71,11,14,21,0,35,0,29,22,0,17,13,14,21,0,54,21,0,54,21,0,17,21,0,17,21,0,60,21,0,59,21,0,32,21,0,32,21,0,34,21,0,34,21,0,45,21,0,44,0,29,21,0,50,17,0,6,0,52,17,0,0,21,0,50,17,21,0,52,0,0,21,0,51,17,0,0,0,47,21,0,44,0,48,0,29,8,0,2,21,0,52,19,8,16,3,13,0,21,16,0,37,0,29,7,21,0,7,17,0,21,21,0,70,17,0,28,16,22,0,72,11,14,21,0,54,0,39,0,53,7,16,21,0,55,0,31,21,0,56,17,21,0,17,0,39,0,66,7,16,21,0,17,0,13,16,0,25,16,0,0,0,52,17,3,4,0,21,21,0,71,17,0,21,16,22,0,73,11,14,21,0,60,0,39,0,67,7,16,21,0,59,0,39,0,68,7,16,21,0,47,0,29,21,0,32,17,0,0,0,56,17,21,0,58,21,0,47,0,29,21,0,34,17,0,0,0,56,17,21,0,31,21,0,1,0,0,21,0,42,17,0,27,21,0,38,17,0,0,21,1,14,0,30,16,0,1,0,69,17,17,21,0,4,0,29,21,0,50,17,0,0,0,57,17,21,0,41,0,29,21,0,51,17,0,2,0,71,17,0,1,21,0,52,17,0,0,0,70,17,0,14,0,47,0,61,8,0,2,0,55,19,0,0,0,19,19,16,3,9,0,21,16,0,21,21,0,73,17,0,29,21,0,72,17,22,0,74,11,14,21,0,23,0,0,21,0,63,17,0,39,0,11,0,46,0,22,8,7,21,0,60,0,13,0,46,0,22,8,21,0,73,17,21,1,24,21,0,72,17,0,21,0,52,17,0,27,16,0,37,0,29,7,21,0,74,0,6,0,52,17,0,41,0,4,7,0,64,17,0,5,16,0,0,0,52,17,0,21,0,53,17,0,44,0,0,7,16,17,17,0,39,0,21,7,0,58,0,25,0,46,0,26,0,48,0,40,0,22,7,8,8,0,56,17,0,20,16,0,29,21,0,22,17,17,22,0,75,11,14,0,67,0,21,21,0,74,17,21,1,31,16,21,0,56,21,0,75,3,3,25,21,0,1,21,1,28,16,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,0,3,21,1,34,21,0,5,21,0,4,3,2,17,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,6,0,39,21,1,30,7,16,0,21,21,0,2,17,0,29,21,1,25,0,16,21,0,8,17,0,2,21,0,2,0,13,16,0,1,21,0,5,17,0,0,21,1,25,17,17,0,1,21,0,8,17,17,22,0,10,11,14,21,0,7,21,0,10,21,0,9,3,3,25,21,0,1,0,26,16,0,30,16,0,14,0,53,17,25,21,0,1,0,29,0,47,21,0,2,0,27,21,0,1,17,8,0,49,0,39,0,52,7,8,16,21,1,10,21,0,2,0,37,0,29,7,16,17,25,21,0,2,0,2,16,22,0,3,11,14,21,0,1,21,0,3,0,42,0,10,7,16,0,51,0,27,0,47,21,0,3,8,0,46,21,1,3,0,48,0,3,8,0,5,9,0,48,21,0,0,8,8,0,21,0,7,0,0,21,0,3,0,48,0,2,8,19,0,47,21,1,3,8,19,8,0,52,0,1,21,0,2,17,17,25,21,0,1,0,24,0,52,17,0,37,0,21,7,0,53,17,0,0,21,0,2,17,0,44,0,6,7,16,0,6,21,0,1,17,25,0,32,0,14,0,18,0,45,0,13,8,19,0,37,0,27,7,0,19,19,0,0,21,0,2,19,0,37,0,29,7,21,2,7,19,0,21,0,88,19,0,21,21,0,1,19,0,21,0,97,19,25]) - ,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[30],runtime[31],runtime[33],runtime[34],runtime[35],runtime[36],runtime[37],runtime[38],runtime[39],runtime[40],runtime[41],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[55],runtime[58],1,0,4,9,3,5,2,6,-1,10,3.14159265358979,Infinity,128,21,15,25,14,11,16,7,'\t','\n',str("0123456789"),str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),str("abcdefghijklmnopqrstuvwxyz"),str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!"),str("˜˘¨⌜⁼´˝`"),str("∘○⊸⟜⌾⊘◶⎉⚇⍟"),str("⋄,"),str("←↩→"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),str("¯.π∞"),str("_"),str(" "),str("Unclosed quote"),'\'','"',str("Unknown character"),str("s"),str(": "),'#',str("'"),str("Missing "),str("opening"),str("closing"),str("Malformed bracket nesting"),str("Undefined identifier"),str("Swapped open and closed brackets"),str("Multiple definitions")] + ,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[30],runtime[31],runtime[33],runtime[34],runtime[35],runtime[36],runtime[37],runtime[38],runtime[39],runtime[40],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[56],runtime[59],1,0,4,9,3,5,2,6,-1,10,3.14159265358979,Infinity,128,21,15,25,14,11,16,7,'\t','\n',str("0123456789"),str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),str("abcdefghijklmnopqrstuvwxyz"),str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!"),str("˙˜˘¨⌜⁼´˝`"),str("∘○⊸⟜⌾⊘◶⎉⚇⍟"),str("⋄,"),str("←↩→"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),str("¯.π∞"),str("_"),str(" "),str("Unclosed quote"),'\'','"',str("Unknown character"),str("s"),str(": "),'#',str("\'"),str("Missing "),str("opening"),str("closing"),str("Malformed bracket nesting"),str("Undefined identifier"),str("Swapped open and closed brackets"),str("Multiple definitions")] ,[[0,1,0,36],[0,0,461,3],[1,1,527,4],[0,0,620,34],[0,0,1889,13],[0,0,2211,6],[0,0,2317,6],[0,0,2430,3],[0,0,2460,76],[0,0,5744,11],[0,0,5867,3],[0,0,5882,3],[0,0,5922,4],[0,0,6008,3],[2,1,6043,3]] ); let bqn = src => run.apply(null,compile(str(src),runtime)); @@ -165,7 +165,7 @@ let fmt0 = x => : ""+x; let fmt1 = run( new Uint8Array([15,1,25,21,0,4,22,0,5,11,14,0,47,22,0,6,11,14,0,48,22,0,7,11,14,0,49,22,0,8,11,14,0,15,0,35,15,2,8,22,0,9,11,14,0,9,0,7,0,44,19,0,39,15,3,8,22,0,10,11,14,15,4,22,0,11,11,14,21,0,10,0,34,21,0,11,8,22,0,12,11,14,15,5,22,0,13,11,14,21,0,13,15,6,3,2,0,37,15,7,8,22,0,14,11,14,0,59,0,17,0,58,17,15,8,15,9,3,2,0,37,0,8,0,9,0,43,19,0,6,0,9,0,8,0,44,19,19,8,3,2,0,37,0,12,0,12,0,43,0,43,3,2,19,8,22,0,15,11,14,15,10,0,36,15,11,8,22,0,16,11,14,15,12,22,0,17,11,14,0,13,0,16,0,16,19,0,33,0,64,8,21,0,5,3,2,0,37,0,41,0,34,0,10,8,8,0,17,9,15,13,21,0,17,3,3,0,37,0,11,0,3,0,44,19,8,22,0,18,11,14,21,0,1,21,0,18,16,0,27,21,0,6,0,34,0,16,8,7,16,0,15,16,0,19,0,40,17,25,21,0,1,0,24,21,1,7,17,22,0,3,11,14,21,0,1,0,21,0,33,21,1,7,0,8,16,0,7,21,0,3,17,8,0,35,0,13,0,26,0,22,7,21,1,8,19,8,21,0,3,17,25,21,0,1,0,12,16,0,19,0,40,17,22,0,3,11,14,0,42,0,28,0,18,7,21,0,3,0,4,0,42,17,0,1,16,17,0,20,0,35,0,32,0,26,0,29,0,2,7,7,7,8,16,0,30,0,40,0,41,3,2,0,38,0,0,8,7,16,0,15,16,22,0,4,11,14,21,0,4,0,23,0,33,0,40,8,0,35,0,43,8,16,22,0,4,12,14,15,14,22,0,5,11,14,21,0,1,0,15,21,0,1,0,12,16,0,23,0,40,17,0,16,21,0,3,0,30,0,2,7,16,17,17,21,0,5,0,18,0,33,0,30,0,0,7,8,3,2,0,37,21,0,3,0,25,0,43,17,0,23,16,8,21,0,4,17,25,21,0,1,0,13,0,42,0,38,0,16,8,0,42,0,38,0,16,8,19,0,50,0,21,21,0,2,17,17,25,0,52,0,16,21,0,1,0,22,16,0,19,0,42,17,0,19,0,40,17,17,0,16,0,51,17,0,17,16,25,21,0,1,0,12,16,0,23,0,40,17,22,0,3,11,14,0,54,21,0,2,0,14,0,3,0,42,19,0,26,0,22,7,0,55,19,0,15,9,21,1,5,3,2,0,37,0,7,0,33,0,45,8,8,16,3,2,0,16,16,0,18,0,42,21,0,3,3,2,17,21,0,1,0,23,0,35,0,56,0,23,0,42,0,1,21,0,2,17,0,4,0,43,17,0,3,0,46,17,17,8,16,0,57,0,18,21,0,3,0,1,16,0,16,0,42,17,17,3,3,0,16,16,25,21,0,1,0,22,16,0,29,0,9,7,0,53,17,0,31,0,1,7,16,0,32,0,0,7,16,0,25,0,44,17,0,23,16,0,6,21,0,1,0,8,16,0,8,0,42,17,17,0,6,21,0,2,0,8,0,42,17,17,25,21,0,1,0,28,0,50,7,16,21,1,11,0,42,17,21,1,14,0,44,17,0,23,0,33,0,43,0,40,3,2,8,0,35,0,60,8,16,25,21,0,1,0,12,16,0,61,0,28,21,1,5,7,0,28,0,63,0,34,0,16,8,7,9,0,16,9,0,23,0,33,0,40,8,0,35,0,62,8,9,3,2,0,37,0,8,0,7,0,42,19,8,16,0,26,0,16,7,0,53,17,0,17,16,25,21,0,1,0,28,0,12,7,16,22,0,3,11,14,21,0,3,0,28,0,23,7,0,42,17,0,15,0,26,0,42,7,0,1,0,9,19,0,39,0,31,0,4,7,8,3,2,0,37,0,9,0,7,0,43,19,8,16,22,0,4,11,14,21,0,3,0,28,0,23,7,16,0,9,0,7,0,43,19,0,39,0,42,0,38,0,31,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,28,0,18,7,0,42,0,18,21,0,4,0,8,16,0,2,21,0,2,17,0,1,16,17,0,5,21,0,4,17,0,2,21,0,2,17,0,29,0,16,7,21,0,5,17,17,0,9,0,1,0,44,19,0,4,0,43,19,0,39,0,17,8,16,0,44,0,38,0,16,8,16,25,21,0,1,21,1,16,0,42,17,25,21,0,1,0,28,21,1,18,7,16,21,1,16,21,0,2,17,21,1,12,0,44,17,21,1,14,21,0,1,0,9,16,17,25,0,41,0,10,21,0,1,17,22,0,3,11,14,21,0,1,0,9,16,22,0,4,11,14,21,0,1,15,15,15,16,15,17,3,3,0,37,21,0,3,0,15,16,0,30,0,0,7,0,10,0,0,0,7,0,33,0,43,8,19,0,8,19,16,8,16,25,21,0,2,0,0,0,42,17,0,21,16,22,0,3,11,14,0,50,0,15,21,0,1,0,12,16,0,23,0,40,17,17,0,16,21,0,1,17,0,22,21,0,3,0,21,0,33,21,0,3,0,25,16,0,5,16,8,0,35,0,28,0,40,7,8,16,17,25,21,0,1,0,12,16,0,19,0,40,17,22,0,3,11,0,8,16,0,1,16,0,9,0,33,0,43,8,0,39,0,41,8,16,22,0,4,11,14,0,65,22,0,5,11,14,21,0,1,0,21,0,33,0,14,0,9,21,0,5,19,0,0,0,42,19,8,21,2,9,3,2,0,37,0,9,0,8,0,42,19,8,16,22,0,1,12,14,21,0,5,0,18,21,0,3,17,0,15,0,35,0,20,8,16,21,0,4,0,38,0,16,8,21,0,1,17,21,0,4,0,38,0,16,8,21,0,5,0,18,21,0,3,17,17,0,17,16,21,1,4,0,8,0,42,17,0,39,21,2,10,21,2,11,0,42,19,21,2,14,21,1,4,19,8,16,25,21,0,1,21,2,17,21,2,15,3,2,0,37,0,12,0,9,0,43,19,0,30,0,6,7,9,8,16,25,21,0,1,21,2,17,0,40,17,25]) - ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[28],runtime[30],runtime[33],runtime[34],runtime[35],runtime[37],runtime[41],runtime[42],runtime[43],runtime[44],runtime[46],runtime[47],runtime[48],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],-1,Infinity,1,0,2,5,4,'\n',str(" + ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[28],runtime[30],runtime[33],runtime[34],runtime[35],runtime[37],runtime[42],runtime[43],runtime[44],runtime[45],runtime[47],runtime[48],runtime[49],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[57],runtime[59],-1,Infinity,1,0,2,5,4,'\n',str(" ,[[0,1,0,0],[1,0,3,19],[0,0,259,4],[0,0,312,6],[0,0,478,3],[0,0,508,3],[0,0,538,4],[0,0,662,3],[0,0,722,3],[0,0,761,3],[0,0,827,6],[0,0,1002,3],[0,0,1012,3],[0,0,1046,5],[0,0,1113,4],[0,0,1181,6],[0,0,1348,3],[0,0,1377,3]] )(a=>str(fmt0(a))); let fmt = x => fmt1(x).map(c=>c===0?" ":c).join(""); diff --git a/docs/doc/primitive.html b/docs/doc/primitive.html index 9ea5651c..fd393bf0 100644 --- a/docs/doc/primitive.html +++ b/docs/doc/primitive.html @@ -232,6 +232,12 @@ </thead> <tbody> <tr> +<td><code><span class='Modifier'>˙</span></code></td> +<td>Constant</td> +<td><code><span class='Brace'>{</span><span class='Value'>𝕩</span><span class='Separator'>⋄</span><span class='Value'>𝕗</span><span class='Brace'>}</span></code></td> +<td>Return a function that returns the operand</td> +</tr> +<tr> <td><code><span class='Modifier'>˜</span></code></td> <td>Self/Swap</td> <td><code><span class='Brace'>{</span><span class='Value'>𝕩</span><span class='Function'>𝔽</span><span class='Value'>𝕨</span><span class='Function'>⊣</span><span class='Value'>𝕩</span><span class='Brace'>}</span></code></td> diff --git a/docs/problems.html b/docs/problems.html index 2d9d1981..a1f5dcfb 100644 --- a/docs/problems.html +++ b/docs/problems.html @@ -32,7 +32,7 @@ <h3 id="cant-access-array-ordering-directly">Can't access array ordering directly</h3> <p>Only <code><span class='Function'>⍋⍒</span></code> use array ordering rather than just array equality or numeric ordering. Getting at the actual ordering to just compare two arrays is more difficult than it should be (but not <em>that</em> difficult: <code><span class='Function'>⥊</span><span class='Modifier2'>⊸</span><span class='Function'>⍋</span><span class='Modifier2'>⌾</span><span class='Function'><</span></code> is TAO <code><span class='Function'>≤</span></code>).</p> <h3 id="syntactic-type-erasure">Syntactic type erasure</h3> -<p>A programmer can call a modifier on either a syntactic function or subject, but there's no way to know within the modifier which syntax that operand had. Maybe this is a better design, but it doesn't feel quite right that <code><span class='Value'>f</span><span class='Modifier'>˜</span></code> is <code><span class='Value'>f</span></code>-Swap if <code><span class='Value'>f</span></code> has a function value. The subject syntax suggests it should be Constant.</p> +<p>A programmer can call a modifier on either a syntactic function or subject, but there's no way to know within the modifier which syntax that operand had. Maybe this is a better design, but it doesn't feel quite right that <code><span class='Value'>f</span><span class='Modifier'>˜</span></code> is <code><span class='Value'>f</span></code>-Swap if <code><span class='Value'>f</span></code> has a function value. The subject syntax suggests it should be Constant. Instead the Constant modifier <code><span class='Modifier'>˙</span></code> has been added partially to mitigate this.</p> <h3 id="comparison-tolerance">Comparison tolerance</h3> <p>Kind of necessary for practical programming, but how should it be invoked or controlled? A system variable like <code><span class='Value'>⎕</span><span class='Function'>CT</span></code>? Per-primitive control? Both? Which primitives should use it?</p> <table> @@ -71,8 +71,6 @@ <p>If you have the normal mix of monads and dyads you'll need a lot of parentheses and might end up abusing <code><span class='Modifier2'>⟜</span></code>. Largely solved with the "nothing" glyph <code><span class='Nothing'>·</span></code>, which acts like J's Cap (<code><span class='Value'>[:</span></code>) in a train, but still a minor frustration.</p> <h3 id="inverse-is-not-fully-specified">Inverse is not fully specified</h3> <p>So it seems a bit strange to rely on it for core language features like <code><span class='Function'>/</span><span class='Modifier'>⁼</span></code>. On the other hand, this is a good fit for <code><span class='Function'>⋆</span><span class='Modifier'>⁼</span></code> since we are taking an arbitrary branch of a complex function that has many of them. I'm pretty sure it's impossible to solve the issue as stated but it might be possible to move to less hazardous constructs. Structural Under is a start.</p> -<h3 id="converting-a-function-expression-to-a-subject-is-tricky">Converting a function expression to a subject is tricky</h3> -<p>You can name it, you can write <code><span class='Function'>⊑</span><span class='Bracket'>⟨</span><span class='Function'>Expr</span><span class='Bracket'>⟩</span></code>, and if it doesn't use special names you can write <code><span class='Brace'>{</span><span class='Function'>Expr</span><span class='Brace'>}</span></code>. All of these are at least a little awkward in reasonable cases. Should there be a dedicated syntax? Note that going the other way, from subject to function, isn't too bad: the modifier <code><span class='Brace'>{</span><span class='Function'>𝔽</span><span class='Brace'>}</span></code> does it.</p> <h3 id="prefixessuffixes-add-depth-and-windows-doesnt">Prefixes/Suffixes add depth and Windows doesn't</h3> <p>It's an awkward inconsistency. Prefixes and Suffixes have to have a nested result, but Windows doesn't have to be flat; it's just that making it nested ignores the fact that it does have an array structure.</p> <h3 id="at-which-scope-does-a-block-function-belong">At which scope does a block function belong?</h3> @@ -102,6 +100,8 @@ <p>When taking Windows along more than one axis, acting on the resulting array requires the Rank modifier, duplicating either the right argument rank or (negated) left argument length. A nested Windows would only require Each.</p> <h3 id="inputs-to-modifiers-are-called-operands">Inputs to modifiers are called operands?</h3> <p>"Operand" is derived from "operator". "Modificand" would be better if it weren't both made up and hideous.</p> +<h3 id="converting-a-function-expression-to-a-subject-is-tricky">Converting a function expression to a subject is tricky</h3> +<p>You can name it, you can write <code><span class='Function'>⊑</span><span class='Bracket'>⟨</span><span class='Function'>Expr</span><span class='Bracket'>⟩</span></code> or <code><span class='Paren'>(</span><span class='Function'>Expr</span><span class='Paren'>)</span><span class='Modifier'>˙</span><span class='Number'>0</span></code>, and if it doesn't use special names you can write <code><span class='Brace'>{</span><span class='Function'>Expr</span><span class='Brace'>}</span></code>. All of these are at least a little awkward in reasonable cases. Should there be a dedicated syntax? Note that going the other way, from subject to function, isn't too bad: the modifier <code><span class='Brace'>{</span><span class='Function'>𝔽</span><span class='Brace'>}</span></code> does it.</p> <h3 id="scan-ordering-is-weird">Scan ordering is weird</h3> <p>Scan moves along the array so that it uses results as left arguments, which is opposite to the usual right-to-left order of evaluation. But I think this is still better than scanning the array in reverse. You can always use Swap on the operand, or recover the APL scan ordering by doing a Reduce-Each on Prefixes.</p> <h3 id="only-errors-in-functions-can-be-caught">Only errors in functions can be caught</h3> diff --git a/docs/repl.js b/docs/repl.js index f911c8d3..e3baa789 100644 --- a/docs/repl.js +++ b/docs/repl.js @@ -50,7 +50,7 @@ let typeChar = (t, c, ev) => { } let syncls={ v:"Value", f:"Function", m:"Modifier", d:"Modifier2", n:"Number", g:"Gets", p:"Paren", b:"Bracket", k:"Brace", l:"Ligature", n:"Nothing", s:"Separator", c:"Comment" }; -let keydesc='f+Conjugate;Add_f-Negate;Subtract_f×Sign;Multiply_f÷Reciprocal;Divide_f⋆Exponential;Power_f√Square Root;Root_f⌊Floor;Minimum_f⌈Ceiling;Maximum_f∧Sort Up;And_f∨Sort Down;Or_f¬Not;Span_f|Absolute Value;Modulus_f≤Less Than or Equal to_f<Enclose;Less Than_f>Merge;Greater Than_f≥Greater Than or Equal to_f=Rank;Equals_f≠Length;Not Equals_f≡Depth;Match_f≢Shape;Not Match_f⊣Identity;Left_f⊢Identity;Right_f⥊Deshape;Reshape_f∾Join;Join to_f≍Solo;Couple_f↑Prefixes;Take_f↓Suffixes;Drop_f↕Range;Windows_f⌽Reverse;Rotate_f⍉Transpose;Reorder axes_f/Indices;Replicate_f⍋Grade Up;Bins Up_f⍒Grade Down;Bins Down_f⊏First Cell;Select_f⊑First;Pick_f⊐Index of_f⊒Occurrence Count;Progressive Index of_f∊Unique Mask;Member of_f⍷Deduplicate;Find_f⊔Group Indices;Group_f!Assert;Assert with message_m˜Self/Swap_d∘Atop_d○Over_d⊸Before/Bind_d⟜After/Bind_d⌾Under_d⊘Valences_d◶Choose_d⎉Rank_m˘Cells_d⚇Depth_m¨Each_m⌜Table_d⍟Repeat_m⁼Undo_m´Fold_m˝Insert_m`Scan_b←Define_b↩Change_b→Return_s⋄Separator_s,Separator_p(Begin expression_p)End expression_k{Begin block_k}End block_b⟨Begin list_b⟩End list_l‿Strand_n·Nothing_v•System_v𝕨Left argument_f𝕎Left argument (as function)_v𝕩Right argument_f𝕏Right argument (as function)_v𝕗Modifier left operand (as subject)_f𝔽Modifier left operand_v𝕘2-modifier right operand (as subject)_f𝔾2-modifier right operand_v𝕤Current function (as subject)_f𝕊Current function_m𝕣Current modifier_n¯Minus_nπPi_n∞Infinity_c#Comment'.split(/[\n_]/); +let keydesc='f+Conjugate;Add_f-Negate;Subtract_f×Sign;Multiply_f÷Reciprocal;Divide_f⋆Exponential;Power_f√Square Root;Root_f⌊Floor;Minimum_f⌈Ceiling;Maximum_f∧Sort Up;And_f∨Sort Down;Or_f¬Not;Span_f|Absolute Value;Modulus_f≤Less Than or Equal to_f<Enclose;Less Than_f>Merge;Greater Than_f≥Greater Than or Equal to_f=Rank;Equals_f≠Length;Not Equals_f≡Depth;Match_f≢Shape;Not Match_f⊣Identity;Left_f⊢Identity;Right_f⥊Deshape;Reshape_f∾Join;Join to_f≍Solo;Couple_f↑Prefixes;Take_f↓Suffixes;Drop_f↕Range;Windows_f⌽Reverse;Rotate_f⍉Transpose;Reorder axes_f/Indices;Replicate_f⍋Grade Up;Bins Up_f⍒Grade Down;Bins Down_f⊏First Cell;Select_f⊑First;Pick_f⊐Index of_f⊒Occurrence Count;Progressive Index of_f∊Unique Mask;Member of_f⍷Deduplicate;Find_f⊔Group Indices;Group_f!Assert;Assert with message_m˙Constant_m˜Self/Swap_d∘Atop_d○Over_d⊸Before/Bind_d⟜After/Bind_d⌾Under_d⊘Valences_d◶Choose_d⎉Rank_m˘Cells_d⚇Depth_m¨Each_m⌜Table_d⍟Repeat_m⁼Undo_m´Fold_m˝Insert_m`Scan_b←Define_b↩Change_b→Return_s⋄Separator_s,Separator_p(Begin expression_p)End expression_k{Begin block_k}End block_b⟨Begin list_b⟩End list_l‿Strand_n·Nothing_v•System_v𝕨Left argument_f𝕎Left argument (as function)_v𝕩Right argument_f𝕏Right argument (as function)_v𝕗Modifier left operand (as subject)_f𝔽Modifier left operand_v𝕘2-modifier right operand (as subject)_f𝔾2-modifier right operand_v𝕤Current function (as subject)_f𝕊Current function_m𝕣Current modifier_n¯Minus_nπPi_n∞Infinity_c#Comment'.split(/[\n_]/); let kk=Array.from('`123456890-=~!@#$%^&*()_+qwertuiop[]QWERTIOP{}asdfghjkl;ASFGK:"zxcvbm,./XVBM<> \''); let kv=Array.from('˜˘¨⁼⌜´˝∞¯•÷׬⎉⚇⍟◶⊘⎊⍎⍕⟨⟩√⋆⌽𝕨∊↑∧⊔⊏⊐π←→↙𝕎⍷𝕣⍋⊑⊒⍳⊣⊢⍉𝕤↕𝕗𝕘⊸∘○⟜⋄↖𝕊𝔽𝔾⌾·˙⥊𝕩↓∨⌊≡∾≍≠𝕏⍒⌈≢≤≥‿↩'); let keys={}, revkeys={}; @@ -59,7 +59,7 @@ doc.kb.innerHTML = keydesc.map(d=>{ let s = syncls[d[0]]; let c = Array.from(d)[1]; let t = d.slice(1+c.length).replace(';','\n'); - let k = revkeys[c]; if (k) t += '\n\\ '+k; + let k = revkeys[c]; if (k) t += '\n\\ '+(k==='"'?'"':k); return '<span title="'+t+'" class="'+s+'">'+c+'</span>' }).join("​"); // zero-width space doc.kb.onmousedown = ev => { diff --git a/docs/spec/token.html b/docs/spec/token.html index 3d04a407..87ae06ab 100644 --- a/docs/spec/token.html +++ b/docs/spec/token.html @@ -26,7 +26,7 @@ </tr> <tr> <td>Primitive 1-Modifier</td> -<td><code><span class='Modifier'>˜˘¨⌜⁼´˝`</span></code></td> +<td><code><span class='Modifier'>˙˜˘¨⌜⁼´˝`</span></code></td> </tr> <tr> <td>Primitive 1-Modifier</td> |
