From 7bf2aa4054b8378a76dff63acdccbcdad91f68e6 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 7 Aug 2021 20:41:31 -0400 Subject: BREAKING: Don't allow First of empty or reshaping empty to non-empty --- docs/bqn.js | 8 ++++---- docs/doc/fill.html | 21 +++++++++------------ docs/doc/find.html | 6 +++--- docs/doc/pick.html | 13 +++++-------- docs/doc/reshape.html | 8 ++++---- docs/doc/types.html | 2 +- docs/spec/primitive.html | 4 ++-- 7 files changed, 28 insertions(+), 34 deletions(-) (limited to 'docs') diff --git a/docs/bqn.js b/docs/bqn.js index 4e686bd3..54b69dce 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -375,10 +375,10 @@ let runtime_0 = [ ]; let [runtime,setPrims] = run( - [0,96,22,0,0,11,14,15,1,22,0,1,11,14,15,2,22,0,2,11,14,15,3,22,0,3,11,14,0,0,0,12,0,45,10,22,0,4,11,14,0,0,0,13,0,46,10,22,0,5,11,14,0,45,0,12,0,41,0,11,8,3,2,0,43,0,0,0,12,0,46,10,8,22,0,6,11,14,0,45,0,12,0,41,0,11,0,39,0,19,8,8,3,2,0,43,0,0,0,12,0,46,10,8,22,0,7,11,14,21,0,5,0,44,0,20,8,22,0,8,11,14,0,30,21,0,5,7,0,35,0,8,7,0,46,10,22,0,9,11,14,15,4,0,15,3,2,0,43,21,0,4,8,22,0,10,11,14,15,5,0,37,15,6,8,22,0,11,11,14,0,14,0,42,0,28,8,22,0,12,11,14,0,34,0,12,7,0,35,0,8,7,0,46,10,22,0,13,11,14,0,4,0,41,0,30,0,46,7,8,22,0,14,11,14,15,7,22,0,15,11,14,15,8,22,0,16,11,14,15,9,22,0,17,11,14,21,0,17,0,55,7,22,0,18,11,14,15,10,22,0,19,11,14,15,11,22,0,20,11,14,0,56,0,45,0,57,0,45,0,58,0,46,0,59,0,46,0,60,0,46,0,61,0,46,0,62,0,48,0,63,0,49,0,64,0,45,0,65,0,46,0,66,0,45,0,67,0,46,0,68,0,45,0,69,0,46,3,28,21,0,20,0,32,0,45,7,0,5,0,97,10,8,15,12,9,22,0,21,11,14,15,13,22,0,22,11,14,15,14,22,0,23,11,14,15,15,22,0,24,11,14,0,13,0,13,0,24,0,33,0,12,7,9,0,13,0,48,0,42,0,13,8,10,10,22,0,25,11,14,21,0,25,0,7,0,33,21,0,25,7,10,22,0,26,11,14,0,46,0,15,0,16,0,45,10,0,42,0,13,0,8,0,47,10,0,7,0,46,10,15,16,3,2,0,43,0,24,0,39,21,0,4,8,8,8,3,2,0,43,0,24,0,39,0,14,8,0,35,0,8,7,0,46,10,0,20,0,45,10,8,22,0,27,11,14,15,17,22,0,28,11,14,15,18,22,0,29,11,14,21,0,26,21,0,27,0,33,21,0,27,7,0,7,9,3,2,0,43,0,25,0,39,21,0,4,8,8,15,19,3,3,0,43,21,0,4,0,40,0,6,8,8,22,0,30,11,14,15,20,22,0,31,11,14,21,0,31,0,45,7,22,0,32,11,14,31,0,31,0,46,7,22,0,33,11,14,15,21,22,0,34,11,14,15,22,22,0,35,11,14,21,0,8,0,40,15,23,8,22,0,36,11,14,15,24,22,0,37,11,14,0,29,0,41,21,0,37,8,22,0,38,11,14,15,25,22,0,39,11,14,15,26,22,0,40,11,14,21,0,35,0,24,0,31,0,6,7,0,50,10,0,33,0,29,7,0,33,21,0,38,0,39,21,0,32,0,39,21,0,14,8,8,7,10,7,22,0,41,11,14,21,0,35,0,34,0,8,7,0,31,0,18,7,9,0,34,0,7,7,0,25,10,0,41,0,22,0,39,0,17,8,8,7,22,0,42,11,14,21,0,8,0,24,0,36,15,27,8,3,2,0,43,0,12,0,20,0,45,10,8,22,0,43,11,14,15,28,0,44,0,24,0,36,15,29,8,8,22,0,44,11,14,15,30,22,0,45,11,14,15,31,22,0,46,11,14,21,0,6,0,5,0,113,10,0,114,3,2,0,12,0,41,0,11,8,0,5,0,115,10,0,116,3,2,3,2,0,30,15,32,7,5,22,0,47,22,0,48,4,2,11,14,15,33,22,0,49,11,14,21,0,8,0,42,15,34,8,22,0,50,11,14,15,35,31,0,50,3,2,0,43,0,25,0,39,0,15,8,21,0,9,9,8,22,0,51,11,14,31,0,49,21,0,51,3,2,0,43,0,25,0,39,21,0,4,8,8,22,0,52,11,14,15,36,22,0,53,11,14,15,37,22,0,54,11,14,21,0,8,0,40,21,0,53,0,128,0,15,0,30,0,0,0,12,0,46,10,7,9,0,35,0,8,7,0,46,10,0,46,0,45,0,24,0,29,15,38,10,15,39,3,6,7,8,22,0,55,11,14,0,24,0,15,0,1,0,16,0,41,0,45,8,3,2,0,43,0,22,0,20,0,45,10,8,9,3,2,0,43,21,0,4,8,22,0,56,11,14,15,40,22,0,57,11,14,15,41,22,0,58,11,14,0,27,0,26,0,28,10,22,0,59,11,14,0,24,0,29,0,22,0,17,9,0,42,21,0,59,8,10,21,0,59,3,2,0,43,0,24,0,39,0,12,8,0,12,0,46,10,8,22,0,60,11,14,0,24,0,36,21,0,8,0,42,21,0,53,0,132,31,0,5,0,45,0,45,0,24,0,39,0,22,8,0,20,0,45,10,0,44,0,24,31,0,60,0,22,0,42,21,0,58,8,10,8,0,24,0,17,9,31,0,59,31,0,58,10,3,6,7,8,8,22,0,61,11,14,15,42,15,43,15,44,3,3,0,43,0,25,0,39,0,12,8,0,11,0,47,10,8,22,0,62,11,14,0,24,0,36,21,0,8,0,40,31,0,53,0,136,0,15,0,39,0,30,0,0,0,12,0,46,10,7,0,35,0,8,7,0,22,0,20,0,45,10,10,8,0,46,0,46,0,24,0,29,0,22,0,42,21,0,62,8,10,31,0,62,3,6,7,8,8,22,0,63,11,14,15,45,22,0,64,11,14,0,24,15,46,3,2,0,30,15,47,7,0,26,0,24,10,5,0,30,15,48,7,5,22,0,65,11,14,15,49,0,41,31,0,65,0,29,0,46,0,46,0,47,0,51,0,45,3,5,6,21,0,16,0,137,8,8,22,0,66,11,14,15,50,22,0,67,11,14,15,51,22,0,68,11,14,15,52,22,0,69,11,14,15,53,22,0,70,11,14,0,45,0,12,0,41,0,32,21,0,70,7,8,3,2,0,43,0,0,0,12,0,51,10,8,22,0,71,11,14,0,24,21,0,4,9,0,12,0,40,0,12,8,0,14,0,40,21,0,13,8,3,3,0,35,15,54,7,5,22,0,72,11,14,15,55,22,0,73,11,14,21,0,4,0,40,0,12,8,0,45,3,2,0,24,0,39,21,0,4,8,0,12,3,2,0,12,0,40,0,12,8,0,45,3,2,0,14,0,40,21,0,13,8,0,45,3,2,15,56,3,5,0,35,15,57,7,5,22,0,74,11,14,0,45,15,58,3,2,0,43,21,0,4,8,22,0,75,11,14,21,0,74,0,37,21,0,75,8,22,0,76,11,14,21,0,74,0,7,0,46,10,0,37,0,45,0,17,5,0,14,3,2,0,43,21,0,4,8,8,22,0,77,11,14,21,0,76,0,39,0,5,8,0,25,0,24,10,22,0,78,11,14,0,15,0,39,0,1,0,36,0,24,8,0,35,21,0,78,0,36,0,24,8,7,3,2,0,43,0,22,0,20,0,45,10,8,8,22,0,79,11,14,15,59,22,0,80,11,14,21,0,4,0,44,0,26,21,0,80,15,60,8,8,22,0,81,11,14,21,0,78,0,36,21,0,8,0,40,0,15,0,40,0,26,8,15,61,3,2,0,43,0,12,0,40,0,18,8,0,20,0,46,10,8,8,8,22,0,82,11,14,15,62,22,0,83,11,14,15,63,22,0,84,11,14,21,0,4,0,5,0,148,10,0,25,15,64,31,0,80,21,0,81,21,0,84,21,0,83,3,2,0,43,0,30,0,12,0,12,0,46,10,7,0,35,0,8,7,0,46,10,8,31,0,84,3,3,0,43,0,12,0,11,0,47,10,8,8,10,22,0,85,11,14,0,24,0,24,0,24,0,35,15,65,7,9,15,66,15,67,15,68,3,6,0,43,0,25,8,22,0,86,11,14,15,69,22,0,87,11,14,15,70,22,0,88,11,14,21,0,88,0,45,7,22,0,89,11,14,31,0,88,0,46,7,22,0,90,11,14,15,71,22,0,91,11,14,21,0,78,0,37,0,24,8,0,36,15,72,8,22,0,92,11,14,21,0,78,0,37,0,24,8,0,36,15,73,8,22,0,93,11,14,21,0,7,0,5,0,164,10,22,0,94,11,14,21,0,94,0,25,0,17,10,15,74,3,2,0,43,21,0,4,8,22,0,95,11,14,15,75,22,0,96,11,14,15,76,22,0,97,11,14,15,77,22,0,98,11,14,15,78,22,0,99,11,14,0,53,0,17,5,21,0,16,0,173,8,22,0,100,11,14,15,79,22,0,101,11,14,15,80,22,0,102,11,14,15,81,22,0,103,11,14,21,0,8,0,40,15,82,8,22,0,104,11,14,15,83,22,0,105,11,14,15,84,22,0,106,11,14,15,85,22,0,107,11,14,15,86,22,0,108,11,14,15,87,22,0,109,11,14,15,88,22,0,110,11,14,21,0,24,0,9,7,22,0,111,11,14,21,0,24,0,10,7,22,0,112,11,14,0,33,21,0,111,0,42,21,0,112,8,7,0,37,0,47,21,0,111,5,0,42,21,0,112,8,8,22,0,113,11,14,21,0,24,15,89,0,21,0,41,0,45,8,0,20,0,41,0,45,8,3,2,0,43,0,45,0,42,0,20,8,8,0,44,0,6,8,3,2,0,43,0,19,0,40,0,21,8,8,0,37,0,19,8,7,22,0,114,11,14,21,0,24,0,20,0,44,0,25,8,0,37,0,11,8,7,22,0,115,11,14,21,0,24,0,21,0,44,0,25,8,0,37,0,7,0,39,21,0,115,0,39,0,7,8,8,8,7,22,0,116,11,14,21,0,24,0,8,7,0,37,0,29,0,41,21,0,32,8,8,22,0,117,11,14,21,0,24,0,8,0,7,0,6,10,7,0,37,0,29,0,41,21,0,33,8,8,22,0,118,11,14,21,0,24,0,8,0,37,0,21,0,7,0,20,10,0,41,0,45,8,8,7,22,0,119,11,14,21,0,24,0,23,0,7,0,46,10,7,0,37,0,20,8,22,0,120,11,14,21,0,24,0,13,0,7,0,46,10,7,0,37,21,0,81,8,22,0,121,11,14,21,0,24,0,12,0,7,0,46,10,7,0,37,0,22,8,22,0,122,11,14,21,0,24,0,12,7,0,37,0,12,8,22,0,123,11,14,21,0,24,0,23,7,0,37,0,32,0,45,7,0,5,0,189,10,8,22,0,124,11,14,21,0,24,0,13,7,0,37,0,32,0,45,7,0,5,0,190,10,8,22,0,125,11,14,21,0,24,0,6,7,22,0,126,11,14,21,0,24,0,7,7,22,0,127,11,14,21,0,127,21,0,126,0,46,10,22,0,128,11,14,0,15,0,37,21,0,10,8,22,0,129,11,14,31,0,96,0,37,21,0,95,8,22,0,130,11,14,31,0,61,0,37,21,0,57,8,22,0,131,11,14,31,0,63,0,37,31,0,39,8,22,0,132,11,14,31,0,92,22,0,133,11,14,31,0,93,22,0,134,11,14,15,90,22,0,135,11,14,31,0,89,0,37,31,0,45,8,22,0,136,11,14,31,0,90,0,37,31,0,46,8,22,0,137,11,14,31,0,105,0,37,31,0,103,8,22,0,138,11,14,21,0,34,0,46,7,0,37,31,0,41,8,22,0,139,11,14,0,33,31,0,34,0,45,7,7,0,37,31,0,35,0,24,7,8,22,0,140,11,14,15,91,0,1,0,45,10,22,0,141,11,14,15,92,22,0,142,11,14,0,24,0,36,15,93,8,22,0,143,11,14,15,94,22,0,144,11,14,15,95,22,0,145,11,14,15,96,22,0,146,11,14,15,97,22,0,147,11,14,0,46,0,16,0,41,0,32,0,47,7,21,0,127,21,0,122,10,8,21,0,77,0,32,21,0,147,7,10,3,2,0,43,0,16,0,41,0,45,8,21,0,123,0,53,10,8,22,0,148,11,14,15,98,22,0,149,11,14,0,46,0,24,15,99,0,39,0,45,0,16,0,41,0,32,0,46,7,21,0,127,21,0,122,10,8,31,0,17,0,71,7,9,3,2,0,43,0,16,0,41,0,45,8,21,0,123,0,54,10,8,8,9,3,2,0,43,0,0,21,0,125,0,51,10,8,22,0,150,11,14,15,100,0,40,15,101,8,22,0,151,11,14,15,102,22,0,152,11,14,15,103,0,24,0,16,0,41,0,46,8,15,104,9,0,32,0,32,0,45,7,0,5,0,199,10,7,0,16,0,41,0,47,8,21,0,151,0,16,0,41,0,46,8,10,31,0,152,0,16,0,41,0,47,8,15,105,0,42,15,106,8,0,16,0,41,0,46,8,10,0,16,0,41,0,47,8,15,107,0,42,15,108,8,0,29,0,41,0,46,0,51,3,2,8,10,3,6,0,43,0,25,8,0,16,0,41,0,45,8,10,9,22,0,153,11,14,15,109,31,0,153,0,32,0,45,7,0,5,0,200,10,3,3,21,0,132,0,51,0,46,0,47,3,3,6,0,43,0,0,8,22,0,154,11,14,31,0,82,0,37,21,0,85,8,22,0,155,11,14,0,5,0,41,0,201,8,22,0,156,11,14,0,5,0,41,0,202,8,22,0,157,11,14,0,32,0,45,7,0,5,0,203,10,22,0,158,11,14,15,110,22,0,159,11,14,15,111,22,0,160,11,14,15,112,22,0,161,11,14,0,24,0,36,31,0,55,0,37,31,0,54,8,8,22,0,162,11,14,0,56,0,33,21,0,127,7,0,37,21,0,126,8,0,57,21,0,127,0,58,0,33,21,0,111,7,0,37,21,0,119,21,0,159,0,24,8,8,0,59,21,0,111,0,60,21,0,24,0,2,7,0,72,0,33,21,0,112,7,0,37,0,33,21,0,119,7,8,0,65,0,33,21,0,111,7,0,37,21,0,117,21,0,159,0,24,8,8,0,64,0,25,21,0,127,0,46,10,21,0,111,0,33,21,0,127,7,10,0,37,21,0,118,21,0,159,0,24,8,8,0,61,21,0,128,0,73,0,45,0,39,21,0,156,8,0,37,15,113,8,0,74,0,24,0,75,21,0,76,0,39,21,0,157,8,0,25,0,24,10,0,37,0,24,8,0,55,15,114,0,37,0,45,0,39,21,0,156,8,8,0,76,15,115,0,37,15,116,8,0,77,0,45,0,39,21,0,156,8,0,37,21,0,136,21,0,159,0,16,0,41,0,50,8,8,8,0,78,0,45,0,39,21,0,156,8,0,37,21,0,137,21,0,159,0,16,0,41,0,45,8,8,8,0,79,0,45,0,39,21,0,156,8,0,37,21,0,130,21,0,159,21,0,77,8,8,0,80,21,0,131,0,41,21,0,127,8,0,37,21,0,131,8,0,81,31,0,145,0,37,31,0,44,8,0,82,0,45,0,39,21,0,156,8,0,37,31,0,40,8,0,83,31,0,161,0,37,31,0,160,8,3,42,21,0,20,21,0,158,8,22,0,163,11,14,0,56,0,33,21,0,127,7,0,37,0,47,0,42,21,0,111,8,8,0,57,21,0,126,0,37,0,45,0,39,21,0,156,8,8,0,58,0,33,21,0,111,7,0,37,21,0,113,8,0,59,21,0,119,0,37,0,45,0,39,21,0,156,8,8,0,60,21,0,113,0,37,0,45,0,39,21,0,156,8,8,0,72,0,2,21,0,111,9,0,37,0,45,0,39,21,0,156,8,8,0,65,0,33,21,0,111,7,0,37,21,0,113,8,0,64,0,25,21,0,127,0,46,10,21,0,111,0,33,21,0,127,7,10,0,37,21,0,128,0,39,21,0,113,8,21,0,128,9,8,0,61,0,32,0,46,7,21,0,127,21,0,126,10,0,37,0,45,0,39,21,0,156,8,8,3,18,21,0,20,21,0,158,8,22,0,164,11,14,31,0,69,22,0,165,11,14,21,0,68,22,0,166,11,14,0,84,21,0,164,0,85,15,117,0,86,15,118,0,87,15,119,0,88,15,120,0,39,15,121,8,3,10,21,0,20,0,32,21,0,158,7,8,22,0,167,11,14,31,0,110,22,0,168,11,14,31,0,73,22,0,169,11,14,15,122,0,89,31,0,151,0,90,15,123,0,91,15,124,0,92,0,32,0,45,0,39,21,0,156,8,7,15,125,15,126,3,2,0,43,21,0,125,0,41,0,45,8,8,3,2,0,43,0,24,0,39,21,0,6,8,8,0,93,15,127,0,94,15,128,15,129,0,24,3,2,0,43,0,25,8,0,25,0,39,21,0,150,8,10,0,95,15,130,3,14,31,0,20,0,32,21,0,158,7,8,7,22,0,170,11,14,31,0,22,22,0,171,11,14,31,0,99,22,0,172,11,14,31,0,149,22,0,173,11,14,31,0,98,22,0,174,11,14,21,0,52,0,37,31,0,56,8,22,0,175,11,14,15,131,22,0,176,11,14,31,0,108,22,0,177,11,14,31,0,109,22,0,178,11,14,21,0,101,0,37,21,0,10,8,22,0,179,11,14,31,0,78,0,37,0,24,8,0,36,21,0,11,0,39,21,0,121,8,8,22,0,180,11,14,31,0,144,0,37,31,0,43,8,22,0,181,11,14,31,0,141,0,37,21,0,42,8,22,0,182,11,14,31,0,36,0,37,21,0,132,0,41,21,0,140,8,8,22,0,183,11,14,21,0,126,21,0,127,21,0,119,21,0,111,31,0,112,31,0,113,21,0,115,31,0,116,31,0,114,21,0,128,21,0,117,31,0,118,21,0,120,21,0,121,21,0,122,21,0,123,21,0,125,21,0,124,21,0,76,21,0,77,0,25,0,24,31,0,179,21,0,155,31,0,180,21,0,136,21,0,137,21,0,130,31,0,134,21,0,133,21,0,131,31,0,181,21,0,132,21,0,32,21,0,33,21,0,162,21,0,175,21,0,139,31,0,182,21,0,140,31,0,183,21,0,138,0,5,0,32,0,33,21,0,174,21,0,166,21,0,165,31,0,173,31,0,171,31,0,172,0,31,0,39,0,40,0,41,0,42,21,0,169,0,37,31,0,176,31,0,178,31,0,177,21,0,168,0,38,3,63,15,132,5,25,0,45,31,0,1,3,2,25,31,0,1,25,31,0,1,22,1,1,22,1,2,4,2,12,25,21,0,1,3,1,0,1,31,0,1,6,25,31,0,2,31,0,1,3,2,25,31,0,1,3,1,25,0,20,0,30,0,12,0,7,0,46,10,7,31,0,1,10,0,31,0,8,7,9,0,35,0,6,7,9,25,0,32,21,1,0,0,30,21,1,15,31,0,1,7,0,33,0,16,7,31,0,2,10,7,5,7,0,16,15,133,10,25,15,134,0,12,31,0,1,21,1,15,21,1,0,7,5,10,25,0,47,0,9,21,0,1,0,22,5,6,0,17,5,0,30,0,8,0,41,0,47,8,7,5,22,0,3,11,14,21,0,1,0,29,21,0,3,6,31,0,1,0,29,31,0,3,0,30,0,6,0,41,0,46,8,7,5,6,3,2,25,31,0,2,21,1,19,5,22,0,3,22,0,4,4,2,11,14,31,0,1,3,1,0,26,31,0,4,6,21,1,16,31,0,3,8,25,0,45,31,0,1,5,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,98,6,14,31,0,1,0,32,21,0,4,7,21,1,21,9,0,35,31,0,4,7,3,2,0,43,0,46,0,37,0,22,0,20,0,45,10,8,8,31,0,2,17,25,15,135,22,0,2,11,14,15,136,22,0,3,11,14,21,0,3,21,0,1,7,0,33,31,0,3,0,33,21,0,1,7,7,7,3,2,0,43,0,12,0,40,0,21,8,8,31,0,2,31,0,1,7,3,2,0,43,0,12,0,40,0,12,8,8,25,31,0,1,15,137,0,36,15,138,15,139,3,2,0,43,21,1,4,0,40,0,21,8,8,0,37,15,140,8,8,15,141,0,36,15,142,8,3,3,0,43,21,1,4,0,40,0,6,8,8,22,0,2,11,25,31,0,1,21,1,27,31,0,2,17,25,21,0,1,0,30,0,20,0,41,0,45,8,7,0,35,0,8,7,0,46,10,0,40,0,7,8,21,0,2,17,22,0,3,11,14,31,0,1,21,0,3,0,45,3,2,15,143,3,2,0,43,0,45,0,12,31,0,3,6,8,31,0,2,17,25,31,0,4,22,0,5,11,14,0,45,0,25,21,0,2,17,22,0,6,11,14,31,0,1,22,0,7,11,14,15,144,22,0,8,11,14,31,0,8,21,0,7,0,12,0,46,6,0,44,0,32,21,0,5,7,15,145,0,37,0,24,8,31,0,2,19,8,5,25,21,0,1,0,14,0,40,21,1,28,8,21,0,2,6,22,0,3,11,14,31,0,3,0,35,21,1,29,31,0,1,0,15,5,0,42,0,16,8,0,42,21,1,30,0,41,31,0,2,0,15,16,0,42,0,16,8,8,8,7,7,5,22,0,4,11,14,0,45,0,33,31,0,4,7,5,25,21,0,1,22,0,2,11,14,21,1,30,21,1,26,0,32,0,45,7,0,13,21,1,30,10,21,1,25,3,4,31,0,1,0,44,0,30,15,146,7,8,5,22,0,3,11,14,15,147,22,0,4,11,14,15,148,0,37,15,149,8,0,1,0,45,10,25,21,0,1,22,0,2,11,14,0,35,0,8,7,0,7,0,46,10,0,31,0,8,7,0,35,0,6,7,9,3,2,0,16,31,0,1,6,22,0,3,11,14,21,1,8,0,42,15,150,8,0,1,0,45,10,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,107,6,14,21,0,1,21,1,32,5,22,0,5,11,14,21,0,1,21,1,12,0,46,6,0,35,0,8,7,0,46,6,22,0,6,11,14,21,0,6,21,1,29,21,0,1,0,15,5,0,42,0,16,8,0,40,21,1,74,0,7,0,46,10,8,7,5,22,0,7,11,14,31,0,1,0,22,5,0,17,5,0,30,0,46,0,24,21,0,5,0,30,0,8,0,41,31,0,6,8,7,5,0,42,0,16,8,0,40,31,0,7,8,0,46,0,42,0,7,8,10,3,2,0,43,0,20,0,41,0,45,8,8,7,5,31,0,4,21,0,5,6,0,29,31,0,5,21,1,14,5,6,0,1,0,45,6,25,21,0,2,0,12,5,22,0,3,11,14,31,0,3,0,7,21,0,1,0,12,5,6,22,0,4,11,14,21,0,4,0,13,0,45,6,0,5,0,108,6,14,0,45,0,20,5,22,0,5,11,14,21,0,1,0,14,5,22,0,6,11,0,27,21,0,4,6,0,24,0,35,0,8,7,0,46,10,0,17,9,0,42,0,15,8,5,22,0,7,11,14,31,0,6,0,28,31,0,4,6,0,34,15,151,7,21,0,2,0,14,16,6,14,21,0,7,0,30,0,20,0,30,0,6,7,21,0,5,10,0,33,0,29,7,31,0,1,0,15,5,10,21,1,74,31,0,2,19,7,5,0,1,0,45,6,25,31,0,1,0,31,0,6,7,5,0,3,5,0,27,0,41,0,32,0,46,7,0,7,0,22,10,0,18,0,45,10,8,5,0,31,0,6,7,5,0,1,0,45,6,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,109,6,14,21,0,1,0,30,21,1,7,7,5,0,35,0,8,7,0,46,6,0,5,0,110,6,14,31,0,1,21,1,37,5,25,21,0,1,0,12,5,0,12,0,46,6,21,1,156,5,14,21,0,1,0,30,21,1,7,7,5,0,35,0,8,7,0,46,6,21,1,156,5,14,21,0,1,0,22,5,0,33,0,7,7,5,0,46,0,17,0,39,0,30,0,6,0,41,0,46,8,21,0,1,0,42,0,16,8,0,40,0,13,8,0,24,10,7,8,0,35,0,8,7,0,46,10,3,2,0,43,0,13,0,41,0,45,8,8,5,21,1,157,5,14,31,0,1,0,3,5,25,21,0,1,0,22,5,22,0,3,11,14,21,0,1,21,1,12,0,46,6,22,0,4,11,0,35,0,8,7,0,46,6,22,0,5,11,14,31,0,3,0,17,5,0,30,0,8,0,41,21,0,5,8,0,42,0,6,8,7,31,0,5,0,17,5,0,15,31,0,4,6,6,0,33,0,29,7,31,0,1,0,15,5,6,25,21,0,1,21,1,4,5,21,1,157,5,14,31,0,1,0,12,5,0,20,0,45,6,25,21,0,1,0,12,5,0,33,0,7,7,0,46,6,22,0,3,11,14,21,0,1,0,14,5,22,0,4,11,14,21,0,4,0,16,21,0,3,6,22,0,5,11,14,31,0,4,0,27,31,0,3,6,22,0,6,11,14,21,0,6,0,35,0,8,7,0,46,6,0,17,5,0,15,31,0,6,6,0,30,0,8,0,41,21,0,5,8,0,42,0,6,8,7,31,0,5,0,17,5,6,0,33,0,29,7,31,0,1,0,15,5,6,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,111,6,14,21,0,1,0,22,5,0,6,0,46,6,0,17,5,0,30,31,0,1,0,42,0,29,0,41,0,17,8,8,7,5,0,1,0,41,0,16,0,41,0,45,8,8,5,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,112,6,14,21,0,1,0,22,5,22,0,3,11,14,21,0,3,0,6,0,46,6,0,17,5,0,30,31,0,1,0,42,0,29,0,41,15,152,8,8,7,5,0,1,0,41,0,16,0,41,21,0,3,8,8,5,25,31,0,1,22,0,3,22,0,4,4,2,11,14,15,153,22,0,5,11,14,0,24,0,39,31,0,3,8,0,25,0,6,21,0,5,0,13,0,41,0,45,8,7,9,31,0,5,0,21,7,3,2,0,43,0,13,0,41,0,45,8,8,10,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,117,6,14,31,0,2,21,1,47,21,0,1,0,22,5,6,0,33,0,16,7,31,0,1,6,25,21,0,2,0,12,16,0,12,0,46,17,0,5,0,118,17,14,21,0,1,0,14,5,22,0,3,11,0,22,0,40,0,12,8,21,0,2,17,0,5,0,119,6,14,0,45,22,0,4,11,14,31,0,3,0,34,15,154,7,31,0,2,17,14,31,0,1,0,15,5,0,16,21,0,4,6,25,31,0,2,0,30,31,0,1,0,42,21,1,51,8,7,5,25,31,0,1,22,0,2,22,0,3,22,0,4,22,0,5,22,0,6,22,0,7,4,6,11,14,0,121,0,26,31,0,2,6,0,26,0,120,6,22,0,8,11,14,0,122,0,26,21,0,8,6,22,0,9,11,14,0,123,0,26,21,0,8,6,22,0,10,11,14,0,124,0,26,21,0,8,6,22,0,11,11,14,0,125,0,26,31,0,8,6,22,0,12,11,14,0,24,0,30,31,0,5,0,30,0,0,0,12,0,46,10,7,0,15,9,0,35,0,8,7,0,46,10,3,2,0,43,21,1,4,8,7,0,15,9,0,35,0,8,7,0,46,10,0,5,31,0,12,10,3,2,0,16,31,0,4,6,22,0,13,11,14,15,155,15,156,3,2,0,43,0,25,0,39,31,0,3,8,8,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,126,6,14,21,0,1,0,22,5,0,20,0,45,6,0,5,0,127,6,14,31,0,1,0,29,0,45,0,20,5,6,25,31,0,2,0,30,21,1,48,0,41,31,0,1,0,22,5,8,7,5,25,31,0,2,0,30,21,1,48,0,41,31,0,1,8,7,5,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,129,6,14,21,0,1,0,22,5,22,0,3,11,14,31,0,1,0,29,21,0,3,0,17,5,0,30,0,7,0,41,0,46,0,7,31,0,3,6,8,7,5,6,25,21,0,2,21,1,6,16,0,5,0,130,17,14,21,0,1,0,12,0,45,6,0,6,22,0,1,13,14,21,0,1,0,9,21,0,2,17,0,11,5,0,8,21,0,1,6,0,7,31,0,2,17,22,0,3,11,14,31,0,1,0,20,21,0,3,6,0,5,0,131,6,14,31,0,3,25,21,0,2,21,1,4,0,44,0,15,0,16,0,45,10,8,5,22,0,2,12,14,21,0,2,21,1,7,5,0,5,0,133,6,14,31,0,2,22,0,3,11,22,0,4,11,14,31,0,1,0,8,21,0,3,6,0,17,5,0,31,0,33,15,157,0,44,15,158,8,7,7,5,25,21,0,2,0,22,5,0,12,31,0,1,6,0,5,0,134,6,14,21,0,2,0,30,0,12,0,41,0,11,0,39,0,19,8,8,7,5,0,35,0,8,7,0,46,6,0,5,0,133,6,14,31,0,2,21,1,37,5,25,0,32,0,45,7,0,5,0,135,10,25,31,0,1,21,1,1,5,22,0,3,11,14,21,0,3,0,16,0,45,6,0,45,0,42,0,13,8,0,32,31,0,3,7,0,46,0,24,0,28,0,46,10,0,30,31,0,0,7,9,0,35,0,8,7,0,46,10,3,2,0,43,21,1,148,8,9,3,2,0,43,0,13,0,41,0,47,8,8,5,25,31,0,1,15,159,31,0,2,10,25,0,33,31,0,1,7,25,15,160,0,24,3,2,0,35,31,0,1,7,5,25,31,0,1,31,0,2,5,25,31,0,1,15,161,0,25,21,1,64,9,0,44,15,162,8,3,2,0,43,0,25,0,39,0,0,8,0,13,0,51,10,8,31,0,2,6,25,31,0,1,21,1,8,0,40,21,0,4,21,1,67,21,1,23,21,0,4,7,0,37,0,30,31,0,4,7,8,8,8,31,0,2,17,25,31,0,1,21,1,8,0,40,21,0,4,21,1,67,0,30,31,0,4,7,8,8,31,0,2,17,25,31,0,1,25,0,45,31,0,1,3,2,0,43,31,0,2,8,25,21,0,1,21,0,5,0,40,31,0,4,8,31,0,2,17,22,0,6,11,14,21,1,57,0,35,0,24,21,1,4,9,0,44,0,15,0,42,0,16,8,8,7,21,0,1,10,0,45,0,14,0,39,0,24,0,35,0,8,7,0,46,10,0,17,9,0,42,0,15,8,8,0,1,0,70,10,3,2,0,43,21,1,4,8,9,22,0,7,11,14,15,163,22,0,8,11,14,21,1,1,0,45,0,16,0,41,0,47,8,0,12,0,32,21,0,8,7,10,3,2,0,43,0,16,0,41,0,45,8,0,12,0,53,10,8,9,22,0,9,11,14,21,0,5,21,1,87,21,0,9,6,22,0,10,11,14,0,45,21,0,8,0,50,8,22,0,11,11,14,31,0,11,31,0,10,5,0,45,21,1,70,3,2,21,1,1,0,29,0,46,0,51,3,2,10,3,2,0,43,31,0,9,8,5,22,0,12,22,0,13,4,2,11,14,0,24,0,39,21,1,71,8,0,7,0,46,10,0,44,15,164,8,22,0,14,11,14,0,24,0,36,15,165,8,22,0,15,11,14,31,0,13,31,0,14,21,0,6,6,0,32,31,0,1,7,0,42,31,0,15,8,0,32,31,0,5,7,21,1,154,9,15,166,9,3,2,0,43,21,1,71,8,5,25,31,0,1,0,34,21,1,74,7,31,0,2,17,0,15,5,0,35,0,8,7,0,46,6,25,21,0,2,0,16,0,46,17,31,0,1,3,2,0,43,31,0,2,0,16,0,45,17,8,25,31,0,1,0,15,5,0,30,21,1,75,7,5,0,35,0,18,7,0,45,6,0,6,0,46,6,25,0,1,0,42,0,24,0,36,0,32,3,0,7,0,15,21,1,77,0,40,31,0,2,8,10,8,8,21,1,79,0,24,0,36,0,25,8,31,0,1,10,3,2,0,43,0,15,0,39,0,22,8,0,20,0,45,10,8,25,21,0,1,0,15,5,0,16,0,45,6,21,1,77,5,22,0,3,11,14,21,0,1,0,15,5,0,30,21,1,77,0,45,21,1,13,3,2,0,43,0,22,0,40,0,12,8,8,21,0,3,10,0,5,0,140,10,7,5,14,21,0,3,0,35,0,8,7,0,46,6,0,17,5,0,15,31,0,3,6,0,30,0,33,0,16,7,7,31,0,1,0,30,21,1,10,7,5,6,25,21,0,1,0,12,0,40,0,18,8,21,0,2,17,0,33,0,7,7,0,46,6,22,0,3,11,14,21,0,1,21,1,77,0,40,21,1,11,8,21,0,2,17,22,0,4,11,14,21,0,4,0,30,0,22,0,13,21,0,3,10,7,5,0,35,0,8,7,0,46,6,0,5,0,141,6,14,21,0,4,0,30,0,28,0,41,0,32,21,0,3,7,0,7,0,22,10,8,7,5,22,0,5,11,14,21,0,5,0,35,21,1,13,7,5,0,5,0,142,6,14,31,0,4,0,30,0,46,0,24,0,16,0,45,10,3,2,0,43,0,22,0,20,31,0,3,10,8,7,5,0,35,0,6,7,0,45,6,22,0,6,11,14,31,0,1,0,15,0,40,0,26,8,31,0,2,17,0,15,31,0,5,0,16,0,45,6,0,26,31,0,6,3,1,6,6,25,0,50,22,0,3,11,22,0,4,11,14,3,0,22,0,5,11,14,21,0,1,22,0,6,11,14,31,0,1,0,30,0,22,7,5,21,1,37,5,0,30,15,167,7,5,25,21,0,1,0,15,5,22,0,3,11,0,22,5,22,0,4,11,14,21,0,3,0,30,21,1,77,7,5,22,0,5,11,14,21,0,5,0,16,0,45,6,0,22,5,22,0,6,11,14,21,0,1,0,12,5,22,0,7,11,14,21,0,5,0,30,0,22,0,12,21,0,6,10,7,5,0,35,0,8,7,0,46,6,0,5,0,143,6,14,21,0,7,0,23,21,0,6,6,0,5,0,144,6,14,15,168,22,0,8,11,14,31,0,1,21,1,77,5,22,0,9,11,14,0,46,22,0,10,11,14,0,45,0,20,5,22,0,11,11,22,0,12,11,14,21,0,7,0,17,5,0,34,15,169,7,21,0,9,21,1,57,5,21,0,8,0,8,7,0,46,6,21,1,57,5,6,14,0,34,15,170,31,0,3,0,30,0,15,7,5,7,7,22,0,13,11,14,21,0,11,21,0,13,15,171,3,2,0,43,31,0,6,0,20,21,0,7,6,8,21,0,12,6,25,21,0,2,0,22,5,22,0,3,11,14,21,0,1,0,22,5,22,0,4,11,14,21,0,3,0,23,21,0,4,6,0,5,0,147,6,14,31,0,1,0,34,0,8,0,41,31,0,2,0,42,0,16,8,8,0,24,3,2,0,43,0,25,0,13,31,0,3,10,8,7,31,0,4,0,17,5,6,25,31,0,1,31,0,2,9,25,31,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,31,0,5,31,0,4,31,0,3,10,25,31,0,1,22,0,3,22,0,4,4,2,11,14,31,0,4,31,0,3,7,25,31,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,31,0,5,31,0,4,31,0,3,8,25,0,32,21,1,70,7,22,0,0,11,14,15,172,22,0,1,11,14,0,0,0,23,0,51,10,0,44,21,0,1,21,1,71,7,8,22,0,2,11,14,15,173,22,0,3,11,14,15,174,22,0,4,11,14,15,175,22,0,5,11,14,0,149,0,24,0,150,0,45,21,0,3,0,46,8,21,0,4,9,0,151,0,46,21,0,3,0,45,8,21,0,4,9,0,152,0,46,21,0,3,0,46,8,31,0,4,9,0,153,0,46,21,0,3,0,46,8,31,0,5,9,0,154,0,46,31,0,3,0,46,8,3,12,21,1,19,5,22,0,6,22,0,7,4,2,11,14,15,176,3,1,0,26,31,0,7,21,1,38,0,41,0,30,0,22,7,8,21,0,6,6,6,21,1,16,31,0,6,21,1,83,5,8,22,0,8,11,14,15,177,22,0,9,11,14,21,1,86,0,32,21,0,0,7,3,2,0,43,0,16,0,41,0,51,0,42,0,23,8,8,0,12,0,32,21,0,0,7,10,8,22,0,10,11,14,15,178,0,42,0,24,0,16,0,46,10,31,0,9,0,25,10,21,0,2,9,0,32,21,0,0,7,15,179,31,0,10,0,16,0,41,0,45,8,10,0,24,0,16,0,46,10,31,0,2,9,3,4,0,43,0,24,0,16,0,45,10,0,39,0,51,0,24,0,47,3,2,0,43,0,13,0,41,0,47,8,8,3,2,0,43,0,13,0,41,0,45,8,8,8,8,8,25,21,0,1,0,7,0,46,6,22,0,2,11,14,0,155,0,156,3,2,0,16,21,0,1,6,22,0,3,11,14,0,19,0,42,0,12,8,0,7,0,46,10,0,12,0,41,0,45,8,0,7,0,46,10,3,2,0,16,21,0,1,6,22,0,4,11,14,15,180,15,181,3,2,0,16,31,0,1,6,22,0,5,11,14,0,157,0,26,31,0,3,6,0,26,0,120,6,22,0,6,11,14,0,158,0,26,21,0,6,6,22,0,7,11,14,0,159,0,26,31,0,6,6,22,0,8,11,14,21,1,8,0,42,0,24,0,36,15,182,15,183,3,2,0,43,0,25,0,39,21,1,4,8,8,8,8,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,160,6,14,21,0,1,21,1,12,0,46,6,22,0,3,11,14,21,0,2,0,12,0,40,0,7,8,21,0,1,17,15,184,21,0,2,17,14,21,0,3,0,35,0,8,7,31,0,1,15,185,0,37,0,46,8,31,0,2,17,6,25,21,0,1,21,1,91,21,0,2,17,22,0,3,11,14,21,0,1,0,15,5,22,0,4,11,0,22,5,22,0,5,11,0,11,31,0,3,6,22,0,6,11,14,31,0,4,0,27,21,0,6,0,7,21,0,5,6,6,0,26,31,0,6,0,33,21,1,10,0,42,0,27,8,7,0,37,21,0,1,0,42,31,0,5,0,20,0,45,6,0,44,15,186,8,8,8,31,0,2,17,6,0,15,31,0,1,21,1,77,5,6,25,21,0,1,21,1,91,21,0,2,17,22,0,3,11,14,21,0,1,0,15,5,22,0,4,11,0,22,5,22,0,5,11,0,11,21,0,3,6,22,0,6,11,14,21,0,6,0,33,21,1,10,0,42,0,28,0,41,0,7,0,41,31,0,3,8,8,8,7,0,37,21,0,1,0,42,31,0,5,0,20,0,45,6,0,44,15,187,8,8,8,31,0,2,17,0,26,31,0,4,0,28,31,0,6,6,6,0,15,31,0,1,21,1,77,5,6,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,165,6,14,21,0,1,0,30,21,1,94,7,5,14,21,0,1,3,0,0,42,0,15,8,0,30,0,17,7,0,35,0,30,0,26,0,41,21,1,11,8,7,7,3,0,0,20,5,10,3,2,0,43,0,24,0,35,0,8,7,0,46,10,0,20,0,45,10,8,5,0,30,0,1,0,41,0,45,8,7,5,0,1,31,0,1,0,30,0,45,7,5,6,25,21,0,2,0,12,5,0,23,0,46,6,0,5,0,166,6,14,21,0,2,21,1,10,5,22,0,2,12,0,22,5,22,0,3,11,14,31,0,1,21,0,3,0,20,0,45,6,0,44,0,24,0,36,15,188,8,8,31,0,2,6,25,21,0,1,21,1,77,5,0,27,21,0,2,17,22,0,3,11,14,21,0,1,21,1,12,31,0,2,17,22,0,4,11,0,35,0,8,7,0,46,6,22,0,5,11,14,21,0,1,0,15,5,22,0,6,11,14,21,0,5,0,17,5,0,15,31,0,4,6,22,0,7,11,14,31,0,1,15,189,0,36,0,32,21,0,3,0,35,0,8,7,0,46,6,0,17,5,0,30,15,190,7,5,0,15,31,0,3,6,7,8,5,25,31,0,4,22,0,5,11,14,15,191,22,0,6,11,14,15,192,22,0,7,11,14,31,0,1,21,0,5,0,20,9,15,193,15,194,31,0,7,3,4,0,43,0,12,0,20,0,45,10,0,40,0,6,0,41,0,8,0,41,0,47,8,8,8,8,31,0,2,17,21,1,81,5,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,171,6,14,31,0,4,22,0,5,11,14,15,195,22,0,6,11,14,31,0,1,31,0,6,15,196,3,2,0,43,0,46,0,37,0,22,0,20,0,45,10,8,8,31,0,2,17,25,21,0,2,0,12,5,0,23,0,46,6,0,5,0,174,6,14,31,0,2,21,1,10,5,22,0,3,11,14,21,0,3,0,30,21,1,7,0,7,0,46,10,7,5,22,0,4,11,0,35,0,6,7,0,45,6,22,0,5,11,14,21,0,5,0,23,0,46,6,0,5,0,175,6,14,31,0,1,21,1,10,5,22,0,6,11,0,22,5,22,0,7,11,14,21,0,3,0,24,0,35,0,8,7,0,46,10,15,197,3,2,0,43,31,0,5,8,5,22,0,8,11,14,21,0,6,21,0,7,0,12,21,0,8,6,0,7,0,46,6,0,44,0,24,0,36,15,198,15,199,3,2,0,43,21,0,7,0,20,0,45,6,8,8,8,5,0,15,21,0,3,6,25,21,0,1,0,30,21,1,6,7,5,0,35,0,8,7,0,46,6,0,5,0,179,6,14,21,0,1,0,30,0,13,0,41,0,50,8,7,5,0,35,0,8,7,0,46,6,0,5,0,180,6,14,0,3,22,0,5,11,14,21,0,1,0,25,0,37,0,45,8,0,44,0,24,15,200,0,22,0,42,0,33,0,7,7,8,10,8,31,0,2,17,22,0,1,12,14,21,0,1,0,4,31,0,1,21,0,5,5,22,0,6,11,6,22,0,7,11,14,0,45,22,0,8,11,14,31,0,6,0,30,15,201,0,33,0,29,7,31,0,7,10,31,0,4,9,7,5,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,181,6,14,21,1,102,0,24,7,22,0,3,11,14,31,0,1,21,0,3,0,1,0,45,0,39,0,17,8,10,0,30,21,1,8,0,39,15,202,8,7,0,35,0,30,0,30,0,26,7,7,7,3,0,0,20,5,0,20,5,10,0,1,0,30,0,45,7,3,0,0,42,0,15,8,0,1,0,24,10,9,10,3,2,0,43,21,1,76,0,20,0,46,10,8,5,25,21,0,2,0,12,5,22,0,3,11,14,21,0,1,0,12,5,0,13,21,0,3,6,0,5,0,182,6,14,21,0,1,21,1,77,5,22,0,4,11,0,27,21,0,3,6,0,34,0,7,7,21,0,2,21,1,77,16,6,22,0,5,11,14,21,0,5,0,45,0,16,0,41,0,45,8,0,12,0,46,10,3,2,0,43,21,0,3,0,12,0,46,6,8,5,22,0,6,11,14,31,0,5,0,30,0,12,0,41,0,45,8,7,0,35,0,8,7,0,46,10,0,46,3,2,0,43,21,0,6,8,5,0,5,0,183,6,14,21,0,1,0,42,0,24,0,36,0,25,0,39,21,0,1,0,15,5,15,203,15,204,3,2,0,43,31,0,1,0,12,5,0,12,21,0,3,6,8,5,8,8,8,22,0,7,11,14,31,0,2,0,15,5,21,1,102,21,0,7,7,31,0,6,6,0,1,3,0,31,0,7,5,6,25,21,0,1,21,1,4,5,0,5,0,184,6,14,31,0,1,21,1,104,21,1,135,3,2,0,43,21,0,2,21,1,76,16,0,13,0,47,17,8,31,0,2,6,25,21,0,1,0,12,5,0,23,0,46,6,0,5,0,185,6,14,21,0,1,21,1,10,5,22,0,1,12,14,21,0,1,0,22,5,0,51,0,42,0,13,8,0,8,0,13,0,41,0,46,8,10,5,0,5,0,186,6,14,21,0,1,0,30,21,1,6,7,5,0,35,0,8,7,0,46,6,0,5,0,187,6,14,31,0,2,0,30,0,25,0,8,0,33,0,9,0,39,0,11,8,7,10,0,33,0,7,7,0,46,10,0,6,0,7,10,0,41,21,0,1,0,22,5,8,7,5,0,33,0,29,7,31,0,1,6,25,31,0,1,21,1,106,0,46,0,45,3,2,0,37,0,47,3,1,8,10,25,21,0,1,21,1,107,31,0,5,7,21,0,2,17,22,0,6,11,0,30,0,21,0,41,0,45,8,7,5,22,0,7,11,14,21,0,4,22,0,8,11,14,15,205,15,206,3,2,0,16,31,0,4,0,46,21,1,64,3,2,0,43,0,0,0,13,0,51,10,8,5,6,22,0,9,11,14,15,207,22,0,10,11,14,15,208,22,0,11,11,14,15,209,22,0,12,11,14,31,0,1,21,0,12,31,0,6,7,31,0,2,17,25,0,24,0,25,3,2,0,43,0,20,8,22,0,6,11,14,21,0,1,21,1,107,31,0,5,7,0,34,0,7,0,42,21,0,6,8,31,0,6,0,7,0,25,10,3,2,0,43,0,24,0,13,0,45,10,8,7,0,12,0,40,21,1,11,8,10,21,0,2,17,22,0,7,11,14,0,24,0,20,9,21,1,97,0,24,0,20,0,36,0,30,0,20,7,8,9,3,3,0,43,0,12,0,42,0,23,8,0,6,0,46,10,0,8,0,45,0,42,0,21,8,10,8,22,0,8,11,14,31,0,1,21,0,8,21,0,7,0,16,0,41,0,22,0,33,0,7,7,0,46,10,8,5,6,21,1,68,31,0,4,7,31,0,2,31,0,8,31,0,7,0,16,0,45,6,17,17,21,1,81,5,25,31,0,4,22,0,6,11,14,0,45,15,210,0,37,0,32,15,211,7,8,21,0,2,17,22,0,7,11,14,21,0,1,31,0,5,31,0,2,17,22,0,8,11,14,15,212,22,0,9,11,14,31,0,1,31,0,9,15,213,3,2,0,43,21,0,8,21,1,7,5,8,5,25,21,0,2,21,1,111,21,0,1,6,0,11,5,0,8,31,0,2,6,0,7,31,0,1,6,25,21,0,2,21,1,123,5,21,1,123,0,46,6,0,5,0,191,6,14,21,0,2,0,30,21,1,123,7,5,22,0,3,11,0,35,21,1,126,7,0,45,6,22,0,4,11,14,21,0,1,21,1,123,5,21,1,125,21,0,4,6,0,5,0,192,6,14,21,0,1,21,1,77,5,0,27,21,0,4,6,21,1,127,21,0,2,0,30,21,1,77,7,16,21,1,85,16,6,22,0,5,11,14,21,0,5,21,0,3,21,1,123,0,46,6,21,1,132,21,0,3,6,0,42,21,1,125,8,21,1,117,21,1,125,0,41,0,45,8,10,5,0,35,21,1,117,7,0,46,6,0,5,0,183,6,14,0,45,3,1,0,26,31,0,5,6,0,29,21,0,3,0,31,21,1,126,7,5,21,1,133,0,45,6,6,21,1,115,31,0,3,6,22,0,6,11,14,21,0,2,0,30,21,1,129,7,5,22,0,2,12,0,30,21,1,122,7,5,0,33,21,1,127,7,21,0,6,6,22,0,7,11,14,0,32,21,0,1,7,21,1,101,31,0,1,21,1,12,31,0,4,6,0,42,0,26,8,10,22,0,8,11,14,21,0,7,0,35,21,1,119,7,0,46,6,3,1,21,0,8,5,0,42,0,29,8,22,0,9,11,14,21,0,2,0,16,0,41,0,45,8,0,40,21,1,102,21,0,9,7,8,0,34,21,1,102,0,24,7,7,21,1,119,31,0,7,21,1,131,5,21,1,133,0,46,6,0,31,21,1,119,7,5,21,1,131,5,10,0,35,0,30,0,30,21,1,126,7,7,7,9,0,30,31,0,9,7,9,3,2,0,43,0,24,0,39,21,1,122,8,21,1,122,0,46,10,8,31,0,6,6,0,1,31,0,2,0,30,0,45,7,16,31,0,8,16,6,25,21,0,2,21,1,123,5,0,33,21,1,127,7,0,46,6,22,0,3,11,14,21,0,3,21,1,125,0,45,6,0,5,0,193,6,14,21,0,1,21,1,123,5,21,1,125,31,0,3,6,0,5,0,194,6,14,31,0,1,21,1,139,0,41,21,0,2,8,21,1,129,0,39,21,1,42,8,21,1,129,21,1,77,10,0,42,0,34,21,1,11,7,8,9,0,40,21,1,139,8,31,0,2,6,25,21,0,2,21,1,123,5,21,1,124,0,46,6,0,5,0,195,6,14,31,0,1,21,1,77,5,21,1,122,0,40,21,1,125,8,21,0,2,6,0,5,0,196,6,14,31,0,2,21,1,129,5,0,30,21,1,7,7,5,0,35,21,1,117,7,0,46,6,0,5,0,197,6,25,21,0,1,21,1,77,5,21,1,138,21,0,2,6,0,30,0,35,21,1,115,7,7,5,21,1,130,5,0,30,0,32,31,0,1,7,21,1,52,0,29,0,41,31,0,2,8,10,7,5,25,21,0,1,21,1,142,21,0,2,6,14,21,0,2,21,1,129,5,22,0,2,12,14,21,0,2,21,1,140,5,21,1,128,5,0,35,21,1,126,7,0,45,6,21,1,127,21,0,1,21,1,123,5,6,22,0,3,11,14,21,0,3,21,1,120,21,0,2,6,0,35,21,1,117,7,0,46,6,0,5,0,198,6,14,31,0,1,21,1,143,31,0,3,21,1,130,5,0,24,21,1,132,0,33,21,1,140,0,39,21,1,128,8,7,10,21,0,2,17,0,26,31,0,2,17,6,25,21,0,1,21,1,142,21,0,2,6,14,21,0,2,21,1,129,5,22,0,2,12,14,21,0,1,21,1,123,5,22,0,3,11,14,21,0,2,21,0,3,0,42,21,1,120,8,21,1,117,21,1,140,10,5,0,35,21,1,117,7,0,46,6,21,1,156,5,14,31,0,1,21,1,143,31,0,3,21,1,130,5,0,24,21,1,132,0,33,21,1,140,0,39,21,1,128,8,7,10,21,0,2,17,0,26,31,0,2,17,21,1,14,5,6,25,31,0,1,21,1,154,5,25,31,0,5,14,31,0,1,31,0,4,31,0,2,17,25,21,0,1,21,1,154,5,0,24,15,214,3,2,0,43,0,45,0,24,21,1,1,0,39,21,1,148,8,9,3,2,0,43,21,1,77,0,41,0,32,21,1,158,7,8,21,1,117,21,1,77,10,8,8,31,0,1,6,25,31,0,1,21,1,1,5,25,31,0,1,21,1,154,5,25,21,0,2,0,42,21,0,1,8,0,37,31,0,2,31,0,1,9,8,25,31,0,1,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,150,21,1,128,9,22,0,7,11,14,31,0,6,15,215,15,216,0,32,21,1,158,7,3,2,0,43,0,24,0,39,21,0,7,8,8,3,2,0,43,0,25,0,39,31,0,7,8,8,31,0,4,6,25,31,0,1,21,1,1,5,25,31,0,1,21,1,163,5,25,31,0,1,21,1,167,5,25,31,0,2,31,0,1,5,25,31,0,1,21,1,170,5,25,31,0,2,0,35,31,0,1,7,5,25,0,24,21,1,76,0,39,21,1,157,8,31,0,1,10,0,25,0,24,10,25,21,0,1,31,0,4,21,0,2,17,22,0,6,11,14,21,0,6,31,0,5,31,0,2,17,21,1,76,31,0,1,6,21,1,157,5,14,31,0,6,25,21,0,1,21,1,76,5,21,1,123,0,47,6,21,1,156,5,14,21,0,1,0,30,21,1,123,7,5,21,1,123,0,46,6,0,35,21,1,117,7,0,46,6,21,1,157,5,14,21,0,1,21,1,155,5,22,0,3,11,14,21,0,3,0,30,21,1,7,7,5,0,35,21,1,117,7,0,46,6,21,1,157,5,14,21,0,1,0,30,21,1,133,0,41,0,50,8,7,5,21,1,155,5,21,1,121,21,0,3,6,0,35,21,1,117,7,0,46,6,21,1,157,5,14,21,0,3,0,3,5,22,0,4,11,14,0,46,21,1,125,21,0,4,6,0,35,21,1,117,7,0,46,6,21,1,157,5,14,31,0,4,21,1,128,5,21,1,132,5,22,0,5,11,14,21,0,5,0,30,0,50,7,5,21,1,155,31,0,1,0,30,21,1,122,7,5,21,1,132,5,6,0,29,31,0,5,21,1,155,31,0,3,6,21,1,32,5,6,25,21,0,2,21,1,123,5,21,1,123,0,46,6,21,1,156,5,14,21,0,2,0,30,21,1,7,7,5,0,35,21,1,117,7,0,46,6,21,1,156,5,14,31,0,2,21,1,138,5,22,0,3,11,14,21,0,1,0,30,21,1,122,7,0,40,21,1,76,8,21,0,3,6,21,1,157,5,14,31,0,1,21,1,155,0,40,0,29,0,41,21,1,32,8,8,31,0,3,6,25,21,0,1,21,1,4,5,21,1,157,5,14,21,0,1,21,1,123,5,21,1,123,0,45,6,21,1,157,5,14,31,0,1,21,1,129,5,0,16,0,45,6,25,21,0,2,21,1,123,0,40,21,1,127,8,21,0,1,6,22,0,3,11,14,21,0,3,0,46,0,42,21,1,125,8,21,1,117,21,1,125,0,41,0,45,8,10,5,21,1,157,5,14,21,0,2,0,46,21,1,122,3,2,0,43,21,0,3,8,5,22,0,4,11,14,21,0,1,21,1,122,5,21,1,125,21,0,4,6,21,1,157,5,14,21,0,1,21,1,162,21,1,136,0,41,21,0,4,8,3,2,0,43,31,0,3,8,5,21,1,76,31,0,2,6,21,1,157,5,14,31,0,1,21,1,137,31,0,4,6,25,21,0,1,21,1,122,5,21,1,123,0,47,6,21,1,157,5,14,21,0,1,21,1,162,5,21,1,76,31,0,2,17,21,1,157,5,14,31,0,1,21,1,162,0,46,6,25,21,0,1,21,1,122,5,21,1,123,0,46,6,21,1,157,5,14,31,0,1,21,1,162,5,25,0,24,0,39,21,1,76,8,21,1,120,0,45,10,21,1,157,9,0,25,21,1,166,21,1,146,31,0,1,7,7,10,25,0,24,0,39,21,1,76,8,21,1,120,0,45,10,21,1,157,9,0,25,0,45,0,39,21,1,156,8,0,37,21,1,165,21,1,146,31,0,1,7,7,8,10,25,0,24,0,39,21,1,123,8,21,1,120,0,45,10,21,1,157,9,0,25,21,1,174,21,1,146,31,0,1,7,0,24,0,41,21,1,4,0,39,21,1,157,8,8,9,7,10,25,21,1,166,21,1,146,31,0,1,7,7,25,0,24,0,39,21,1,123,8,21,1,120,0,45,10,21,1,157,9,0,25,0,24,21,0,1,21,1,133,10,0,37,21,1,122,21,1,120,0,46,10,0,44,21,1,137,0,41,0,46,8,31,0,1,21,1,137,0,41,0,50,8,10,21,1,155,21,1,162,10,8,8,10,25,31,0,1,0,32,15,217,7,3,2,0,43,21,1,123,0,41,0,32,21,1,147,7,8,8,25,21,1,146,31,0,2,7,22,0,3,11,14,21,0,3,0,41,21,0,1,8,0,37,31,0,3,8,21,1,146,31,0,1,7,9,25,31,0,1,21,1,169,21,1,146,31,0,2,7,8,25,21,0,1,21,1,168,21,0,2,8,21,1,159,31,0,1,21,1,127,5,21,1,168,31,0,2,8,8,25,31,0,1,21,1,127,5,21,1,168,31,0,2,8,25,21,1,146,31,0,1,7,0,37,21,1,146,31,0,2,7,8,25,21,1,146,31,0,1,7,0,41,31,0,2,8,25,31,0,1,0,37,21,1,158,8,25,21,1,146,21,0,2,7,21,1,146,21,0,1,7,9,0,37,31,0,1,0,32,0,45,0,39,21,1,156,8,7,15,218,3,2,0,43,0,24,0,39,21,1,150,8,8,31,0,2,17,8,25,21,0,1,15,219,31,0,5,21,1,175,31,0,1,31,0,4,21,0,2,17,6,7,31,0,2,17,25,21,1,120,21,1,139,21,0,1,10,21,1,175,9,22,1,2,12,14,31,0,1,21,1,3,3,2,25,31,0,1,21,2,2,5,25,31,0,1,21,2,2,5,25,21,0,1,0,14,0,40,21,2,13,8,21,0,2,17,0,5,0,99,6,14,31,0,1,0,34,31,0,4,7,31,0,2,17,25,21,0,2,0,14,5,22,0,5,11,14,21,0,2,0,12,5,22,0,6,11,14,21,0,1,0,14,5,22,0,7,11,14,21,0,7,0,27,21,0,6,6,21,2,13,31,0,5,6,0,5,0,100,6,14,21,0,7,0,28,31,0,6,6,0,35,0,8,7,0,46,6,22,0,8,11,14,31,0,2,0,15,5,22,0,9,11,0,22,5,22,0,10,11,14,31,0,1,0,15,5,22,0,11,11,14,0,45,0,21,21,0,10,6,0,8,21,0,8,6,0,17,0,40,0,30,0,32,31,0,11,7,0,16,0,6,0,41,0,8,0,41,31,0,8,8,8,10,31,0,4,31,0,9,0,42,0,16,8,10,7,8,31,0,10,6,0,15,31,0,7,6,25,31,0,1,21,1,2,31,0,2,17,25,31,0,1,0,30,21,1,2,0,41,31,0,2,8,7,5,25,31,0,2,0,30,31,0,1,0,42,21,1,2,8,7,5,25,31,0,1,0,30,21,1,2,7,5,25,31,0,1,21,1,2,31,0,2,17,25,31,0,1,21,2,23,21,1,2,7,31,0,2,17,25,21,2,11,0,16,0,23,10,21,2,11,21,2,26,10,22,0,3,11,14,21,0,1,0,22,0,40,21,0,3,8,21,0,2,17,22,0,4,22,0,5,4,2,11,14,31,0,1,15,220,0,40,15,221,8,31,0,2,17,22,0,6,11,14,21,0,4,31,0,6,3,2,25,31,0,2,22,0,3,11,14,31,0,1,22,0,4,11,14,15,222,21,1,6,3,2,0,43,0,12,0,41,21,1,7,8,8,22,0,5,11,14,0,45,21,0,5,5,25,31,0,1,0,12,0,41,0,45,8,0,44,31,0,2,8,9,25,0,33,31,0,1,7,25,21,1,3,0,16,21,0,1,6,31,0,4,5,0,46,0,13,31,0,1,6,0,44,15,223,31,0,5,7,8,31,0,2,17,25,21,0,2,0,12,5,0,33,0,7,7,0,46,6,22,0,3,11,0,7,21,0,1,0,12,5,6,22,0,4,11,14,31,0,3,0,13,0,45,6,0,5,0,102,6,14,21,0,4,0,13,0,45,6,0,5,0,103,6,14,21,0,2,21,2,12,0,46,6,22,0,5,11,14,21,0,2,0,22,5,22,0,6,11,14,21,0,1,21,2,8,5,22,0,1,12,14,21,0,1,21,2,12,21,0,4,6,22,0,7,11,14,21,0,1,0,14,5,0,27,31,0,4,6,22,0,8,11,0,35,0,8,7,0,46,6,22,0,9,11,14,31,0,1,0,15,0,40,15,224,15,225,3,2,0,43,21,0,6,0,20,0,45,6,8,8,31,0,2,6,0,15,31,0,8,6,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,101,6,14,21,0,1,0,22,5,22,0,3,11,14,31,0,1,21,0,3,0,39,0,17,8,15,226,3,2,0,43,21,0,3,0,13,0,47,6,8,5,25,21,0,2,0,12,5,0,33,0,7,7,0,46,6,22,0,3,11,14,21,0,3,0,13,0,45,6,0,5,0,105,6,14,21,0,1,0,12,5,0,13,21,0,3,6,0,5,0,106,6,14,21,0,2,0,22,5,22,0,4,11,14,21,0,2,21,2,12,0,46,6,22,0,5,11,0,35,0,8,7,0,46,6,22,0,6,11,14,21,0,1,0,12,5,0,33,0,7,7,31,0,3,6,22,0,7,11,14,21,0,1,0,14,5,0,27,21,0,7,6,22,0,8,11,0,35,0,8,7,0,46,6,22,0,9,11,14,31,0,1,15,227,15,228,3,2,0,43,0,45,21,2,12,0,41,31,0,7,8,21,2,13,31,0,5,10,3,2,0,43,21,0,6,0,8,21,0,4,6,0,20,0,45,6,22,0,10,11,8,8,31,0,2,6,0,15,31,0,8,6,25,0,17,0,42,0,30,0,6,7,0,41,0,30,21,0,1,0,42,0,8,8,7,8,8,22,0,3,11,14,21,0,2,21,0,3,22,1,5,13,14,31,0,2,0,7,31,0,1,6,0,6,0,46,6,0,18,0,45,6,31,0,3,22,1,7,13,25,21,0,1,0,7,21,1,3,6,0,17,5,0,30,0,6,0,41,31,0,1,8,7,5,25,31,0,1,0,5,21,1,4,10,0,25,0,24,10,25,21,1,4,0,8,21,0,1,6,0,6,31,0,2,21,2,47,31,0,1,17,17,22,1,4,12,25,21,0,2,0,12,5,0,23,0,46,6,0,5,21,1,10,6,14,21,0,2,21,1,13,5,14,21,0,2,0,15,5,22,0,2,12,0,22,5,22,0,3,11,14,21,0,1,0,12,5,0,13,21,0,3,6,0,5,21,1,11,6,14,0,45,0,20,5,22,0,4,11,14,21,0,1,0,14,5,22,0,5,11,0,27,21,0,3,6,22,0,6,11,0,34,15,229,7,31,0,2,6,14,31,0,1,0,15,31,0,5,0,28,31,0,3,6,0,26,31,0,6,0,35,0,8,7,0,46,6,3,1,6,6,0,29,21,0,4,6,25,21,0,1,0,12,5,0,13,0,46,6,0,5,21,1,9,6,14,31,0,1,21,1,6,31,0,2,17,25,31,0,2,0,12,21,1,4,6,25,21,1,3,0,6,22,1,4,13,14,31,0,1,0,6,0,46,6,25,31,0,1,0,37,31,0,2,8,25,31,0,1,0,1,0,45,10,25,31,0,1,0,1,31,0,2,19,25,21,0,2,0,36,31,0,1,21,2,66,31,0,2,17,8,25,31,0,4,22,0,6,11,14,31,0,1,22,0,7,22,0,8,22,0,9,4,3,11,14,31,0,5,21,2,4,0,21,31,0,8,10,0,44,15,230,0,39,21,1,7,8,8,5,31,0,7,31,0,2,17,22,0,10,11,14,31,0,10,31,0,9,0,44,15,231,8,5,25,0,46,22,0,3,11,14,0,45,15,232,0,35,0,18,7,0,45,10,0,6,0,46,10,3,2,0,43,21,2,4,8,22,0,4,11,14,21,0,1,21,0,4,5,22,0,5,11,14,31,0,2,21,2,11,0,40,21,2,11,8,0,32,21,2,70,7,0,15,0,40,21,2,11,8,3,2,0,43,21,2,72,8,15,233,3,3,0,43,31,0,5,0,11,0,47,6,8,31,0,1,6,25,21,0,2,22,0,3,22,0,4,4,2,11,14,15,234,0,41,31,0,2,8,22,0,5,11,14,15,235,22,0,6,11,14,15,236,0,41,0,45,8,22,0,7,11,14,31,0,1,0,32,21,0,4,7,0,16,0,45,10,31,0,7,3,2,0,43,21,1,12,0,39,21,2,4,8,8,5,25,21,1,6,31,0,1,5,25,31,0,1,0,12,0,41,21,1,4,8,0,7,0,46,10,0,44,15,237,8,5,14,21,1,5,0,16,0,46,0,6,21,1,3,6,22,1,3,12,6,25,31,0,2,22,0,5,11,14,31,0,4,22,0,6,11,14,31,0,1,0,30,15,238,7,5,25,31,0,2,22,0,3,11,14,21,1,9,0,16,21,0,1,6,22,0,4,11,14,21,1,5,0,30,0,16,0,41,31,0,1,8,7,5,22,0,5,11,14,21,0,4,0,17,5,0,30,0,8,0,41,21,0,3,8,7,5,0,33,0,29,7,21,0,5,6,22,0,6,11,14,31,0,3,0,17,5,0,30,0,25,7,21,0,6,6,0,30,0,24,7,21,1,10,0,17,5,6,0,15,5,21,2,13,31,0,5,6,0,5,0,145,6,14,21,0,6,21,2,37,5,22,0,7,11,14,21,0,6,21,1,8,0,6,7,0,45,6,0,29,21,0,7,6,0,34,0,7,7,21,0,7,0,22,5,0,17,5,6,22,0,8,11,14,31,0,8,0,30,0,24,7,21,1,12,6,0,34,0,6,7,31,0,6,0,29,21,0,7,6,0,30,0,8,7,21,1,12,6,6,22,1,12,12,14,31,0,7,0,30,0,6,0,41,21,0,4,0,42,0,8,8,8,7,21,1,11,6,22,1,11,12,14,31,0,4,0,8,22,1,10,13,25,31,0,4,0,16,31,0,1,6,0,16,31,0,2,17,25,21,1,5,0,16,0,45,6,0,28,21,1,7,6,22,0,3,11,14,21,1,5,0,30,0,28,0,41,21,1,7,8,21,2,13,21,0,3,10,7,5,0,35,0,8,7,0,46,6,0,5,0,146,6,14,21,0,3,0,35,0,8,7,5,22,0,4,11,0,17,5,0,15,31,0,3,6,22,0,5,11,14,21,0,5,0,30,0,25,7,31,0,1,6,21,1,13,31,0,5,0,30,0,6,0,41,0,8,0,41,31,0,4,8,8,7,31,0,2,17,6,25,0,32,21,2,70,7,31,0,1,3,2,0,43,31,0,4,0,7,0,46,10,0,40,0,8,0,37,0,24,8,8,8,25,21,0,1,15,239,31,0,1,31,0,4,31,0,5,3,3,7,3,2,0,43,0,24,31,0,2,9,8,25,21,1,0,0,37,31,0,1,8,25,31,0,1,0,37,21,1,0,8,25,21,1,1,31,0,2,7,22,0,3,11,14,31,0,1,21,0,3,15,240,15,241,3,3,0,43,0,32,0,51,7,0,7,0,0,10,8,5,25,21,0,1,21,1,8,5,22,0,3,11,14,31,0,1,31,0,3,31,0,2,17,25,31,0,1,21,2,1,5,25,31,0,1,0,28,0,46,6,0,30,21,2,87,0,41,0,32,31,0,2,7,8,7,5,25,21,0,1,0,19,5,22,0,5,11,0,20,0,41,21,0,2,8,0,44,31,0,4,8,5,14,31,0,5,0,17,5,0,30,21,0,1,0,6,21,0,2,17,0,42,0,6,8,7,0,30,0,45,0,42,0,20,8,0,44,0,49,8,7,9,0,30,0,13,0,41,31,0,2,8,0,44,0,49,8,7,3,2,0,43,31,0,1,0,20,0,45,6,8,5,25,31,0,1,14,0,6,0,18,0,45,10,0,17,9,0,7,0,18,0,45,10,0,17,9,0,30,0,6,7,0,24,0,39,0,20,8,10,3,2,0,43,0,20,0,41,0,45,8,8,25,21,0,2,21,2,6,5,0,5,21,1,8,6,14,21,0,2,0,13,0,45,6,22,0,3,11,14,21,0,1,0,22,5,0,6,0,18,0,45,10,0,11,3,2,0,43,21,0,3,8,21,0,2,6,22,0,4,11,14,15,242,21,0,1,7,22,0,5,11,14,0,46,22,0,6,11,14,0,24,22,0,7,11,14,21,0,1,0,12,0,20,0,46,10,0,44,15,243,0,41,21,0,2,8,8,5,14,31,0,1,0,15,5,0,28,0,27,3,2,0,43,21,0,3,0,12,21,1,2,6,8,21,0,6,0,8,31,0,4,6,6,21,1,2,0,44,0,24,0,45,0,42,0,21,8,0,44,15,244,8,0,22,0,7,31,0,2,0,39,0,19,8,10,10,8,5,21,0,7,5,25,21,0,2,0,12,5,0,23,0,46,6,0,5,21,1,7,6,14,21,0,2,0,15,5,22,0,2,12,14,21,0,2,0,30,21,2,6,7,5,0,35,0,8,7,0,46,6,0,5,21,1,8,6,14,21,0,2,0,22,5,22,0,3,11,14,21,0,1,21,2,77,5,0,22,0,42,0,21,8,0,44,15,245,8,21,0,3,6,22,0,4,11,14,15,246,22,0,5,11,14,0,45,0,20,5,22,0,6,11,14,0,46,22,0,7,11,14,15,247,22,0,8,11,14,0,45,22,0,9,11,14,31,0,2,0,34,15,248,21,1,5,15,249,7,31,0,8,0,25,10,3,2,0,43,21,1,4,8,7,21,0,4,0,27,21,0,3,6,6,22,0,10,11,14,31,0,1,0,15,0,41,21,0,4,8,15,250,3,2,0,43,21,0,6,0,12,5,0,20,0,45,6,8,5,25,21,0,1,0,13,0,45,6,0,5,0,161,6,14,21,0,1,0,23,0,46,6,0,5,0,162,6,14,31,0,2,21,2,77,5,0,28,31,0,1,0,7,0,46,6,6,21,2,13,21,1,3,6,0,5,0,163,6,25,31,0,2,0,46,0,22,3,2,0,43,0,24,0,12,0,40,0,13,8,31,0,1,10,8,5,25,31,0,2,0,17,5,0,30,31,0,1,0,1,5,7,5,25,31,0,2,0,17,5,0,30,31,0,1,0,1,5,7,5,25,21,0,1,0,12,5,0,13,21,1,3,6,0,5,0,167,6,14,21,0,2,0,30,21,2,7,7,5,0,35,0,8,7,5,0,5,0,168,6,14,21,0,1,21,2,77,5,22,0,3,11,14,21,0,2,0,34,0,7,0,6,0,46,10,7,21,0,3,0,27,21,1,3,6,6,22,0,4,11,14,21,0,4,0,30,0,13,0,41,0,45,8,7,5,0,35,0,8,7,5,0,5,0,169,6,14,21,0,3,0,28,21,1,3,6,22,0,5,11,0,35,0,8,7,0,46,6,22,0,6,11,14,15,251,22,0,7,11,14,31,0,1,15,252,31,0,7,3,2,0,43,0,25,0,35,0,8,7,21,0,4,0,35,0,8,7,21,0,6,6,10,0,20,0,45,10,8,31,0,2,6,25,21,1,7,0,30,0,32,31,0,1,7,7,5,25,21,1,7,0,30,0,6,0,41,31,0,1,0,8,21,1,5,6,8,7,5,0,33,0,29,7,21,1,6,6,25,21,2,97,0,41,0,46,8,0,40,21,0,1,21,2,67,0,34,21,0,1,7,0,37,0,30,31,0,1,7,8,8,8,25,21,0,2,0,22,0,40,0,12,8,21,0,1,17,0,5,0,170,17,14,31,0,1,21,1,6,21,1,5,7,31,0,2,17,25,31,0,1,21,1,6,21,1,5,0,41,31,0,2,8,7,5,25,31,0,2,21,1,6,31,0,1,0,42,21,1,5,8,7,5,25,21,0,1,21,2,77,5,0,28,0,46,6,22,0,3,11,14,15,253,22,0,4,11,14,21,1,5,0,32,31,0,1,7,0,15,31,0,4,10,21,2,21,0,42,21,2,101,8,3,2,0,43,0,24,0,39,21,2,18,8,0,7,0,46,10,8,31,0,3,6,25,31,0,1,21,2,97,0,46,6,0,35,21,1,5,7,31,0,2,17,25,31,0,1,0,34,0,24,0,46,3,2,0,43,0,25,8,7,21,1,4,6,0,35,0,8,7,0,46,6,22,0,3,11,14,21,0,3,0,20,0,45,6,0,5,0,176,6,14,21,1,4,0,22,5,0,17,5,0,34,0,8,7,21,1,4,6,0,35,0,6,7,0,45,6,22,0,4,11,14,21,1,3,0,16,31,0,4,6,21,2,100,5,22,0,5,11,14,0,54,0,20,21,0,5,6,0,5,0,177,6,14,0,12,0,41,0,11,8,0,5,0,178,10,0,25,0,24,10,22,0,6,11,14,21,0,3,0,9,21,1,7,6,31,0,6,0,11,0,18,3,3,0,43,21,0,5,0,11,0,47,6,8,5,22,0,7,11,14,21,1,3,0,34,0,24,21,0,7,3,2,0,43,0,25,8,7,21,1,4,6,22,1,3,12,14,31,0,7,0,8,31,0,3,6,31,0,5,0,12,0,51,6,0,44,0,20,0,41,21,1,7,8,0,44,15,254,8,8,5,25,21,1,8,0,17,5,0,30,0,25,7,31,0,1,0,1,5,0,20,5,6,25,31,0,1,0,27,15,255,0,41,0,47,0,42,0,9,8,8,0,24,0,27,0,22,0,42,0,7,8,10,0,26,0,24,10,0,25,10,3,2,0,43,0,22,0,42,0,21,8,8,21,1,8,6,25,0,24,21,1,5,21,0,1,0,16,21,0,2,17,10,22,1,5,12,14,31,0,1,0,27,31,0,2,17,25,21,0,1,0,17,5,0,30,0,6,0,41,21,1,8,8,7,5,0,24,31,0,1,0,6,22,1,8,13,6,25,21,0,1,0,15,5,21,1,3,5,0,30,31,0,1,21,2,77,5,21,2,95,5,0,15,5,0,42,0,29,8,7,5,25,21,1,4,0,28,21,1,3,6,22,0,3,11,0,35,0,8,7,0,46,6,22,0,4,11,14,21,0,4,0,17,5,0,15,31,0,3,6,0,42,0,30,0,6,0,41,0,8,0,41,31,0,4,8,8,7,8,0,33,0,29,7,31,0,1,10,25,31,0,1,0,42,0,29,8,25,31,0,2,14,31,0,1,25,31,0,2,0,36,31,0,1,8,25,21,0,1,21,1,9,0,30,31,0,1,7,8,25,21,0,1,21,1,9,21,2,23,31,0,1,7,8,25,0,45,22,0,2,11,14,15,256,21,0,1,7,22,0,3,11,14,31,0,1,0,34,15,257,7,21,1,7,6,0,22,0,21,0,47,10,0,44,0,26,0,41,0,45,3,1,8,8,5,22,0,4,22,0,5,4,2,11,14,21,1,8,15,258,15,259,15,260,3,4,0,43,31,0,5,0,42,0,6,0,41,31,0,4,0,8,0,47,10,8,8,8,25,15,261,0,32,31,0,2,7,7,25,0,25,31,0,1,9,25,0,45,22,0,3,11,22,0,4,11,14,21,1,8,21,2,24,15,262,7,5,14,31,0,1,3,1,22,0,5,11,14,15,263,0,41,21,1,7,8,22,0,6,11,14,21,0,3,21,0,6,21,1,6,6,22,0,7,11,14,21,0,4,0,7,5,21,0,5,31,0,6,0,41,21,2,154,8,3,2,0,43,0,20,0,41,0,45,8,8,21,1,6,6,22,0,8,11,14,21,1,8,21,2,24,0,32,31,0,7,31,0,8,3,2,7,0,16,0,45,0,42,0,20,8,10,0,16,0,19,10,7,5,25,21,1,8,0,17,5,0,35,0,24,0,39,21,1,6,21,1,7,5,8,7,31,0,1,6,25,21,0,1,21,2,159,31,0,2,8,21,2,147,31,0,1,8,25,0,24,21,2,146,21,1,5,7,31,0,2,19,15,264,21,2,146,31,0,1,7,8,25,0,24,15,265,21,1,5,7,31,0,1,10,21,2,146,31,0,2,7,9,25,31,0,2,21,2,147,31,0,1,8,25,0,24,15,266,31,0,2,7,31,0,1,10,25,31,0,1,25,21,1,5,0,17,5,0,30,0,7,0,41,21,0,1,0,22,5,0,6,0,50,6,8,7,5,0,33,0,29,7,31,0,1,6,25,21,0,1,0,34,0,12,7,21,0,2,6,0,31,0,8,7,5,0,35,0,6,7,0,45,6,22,0,3,11,14,21,0,2,0,29,0,41,0,17,8,21,0,3,6,0,35,0,8,7,0,46,6,22,0,4,11,14,31,0,3,0,21,0,41,21,1,5,8,0,44,0,32,31,0,2,31,0,1,3,2,7,0,30,0,16,7,0,20,10,0,39,15,267,8,8,5,14,21,0,4,25,21,1,4,0,6,0,41,21,0,1,8,0,40,21,2,5,8,21,1,3,6,0,12,0,41,0,45,8,0,44,31,0,1,0,6,0,46,6,0,39,21,1,5,8,8,5,25,0,32,0,45,7,0,13,31,0,4,21,3,29,31,0,1,7,31,0,2,17,10,25,31,0,1,14,21,1,9,0,17,5,0,30,0,45,7,5,25,21,0,2,21,3,9,5,22,0,3,11,14,31,0,2,0,42,0,16,8,22,0,4,11,14,21,1,5,0,35,0,8,7,0,46,6,22,0,5,11,14,21,0,5,0,12,0,46,6,0,8,0,47,6,0,6,21,0,3,6,21,0,5,21,2,4,15,268,8,5,22,0,6,11,14,0,46,0,7,21,1,6,6,0,17,5,0,30,0,8,0,41,21,0,5,8,0,39,0,6,0,41,21,0,5,8,0,42,31,0,6,8,8,7,5,0,35,0,8,7,0,46,6,0,5,0,104,6,14,31,0,3,0,24,0,44,0,8,0,41,21,0,1,0,39,21,3,9,8,8,8,5,22,0,7,11,14,31,0,1,0,42,0,16,8,22,0,8,11,14,21,1,7,21,3,28,21,1,5,6,22,0,9,22,0,10,4,2,11,14,21,0,10,0,12,0,46,6,0,8,0,47,6,0,6,31,0,7,6,31,0,10,21,2,4,15,269,8,31,0,9,6,22,0,11,11,14,31,0,11,0,41,0,8,0,41,31,0,5,8,8,22,0,12,11,14,15,270,22,0,13,11,14,21,1,9,0,17,5,0,30,0,8,0,41,21,1,7,0,35,0,8,7,0,46,6,8,31,0,13,9,7,5,25,21,0,1,21,3,12,0,46,6,0,35,0,8,7,0,46,6,22,0,3,11,0,12,0,46,6,22,0,4,11,14,21,0,1,0,15,5,22,0,1,12,14,0,46,22,0,5,11,14,0,45,22,0,6,11,14,21,0,1,0,30,0,0,0,39,15,271,8,7,5,14,21,0,4,0,8,0,47,6,0,6,21,0,5,6,22,0,7,11,14,15,272,22,0,8,11,14,0,45,22,0,9,11,22,0,10,11,14,15,273,22,0,11,11,14,21,0,1,0,45,0,45,15,274,3,2,0,43,0,30,0,12,0,41,0,11,8,7,0,35,0,8,7,0,46,10,8,3,2,0,43,21,1,3,0,12,21,0,6,6,0,8,21,0,7,0,12,0,51,6,6,8,5,22,0,12,11,14,31,0,1,31,0,8,31,0,11,3,2,0,43,31,0,12,8,5,25,31,0,1,14,21,1,9,0,17,5,0,30,21,1,10,0,8,21,1,4,6,0,21,0,41,21,1,4,8,0,24,3,2,0,43,21,2,2,8,5,7,5,25,21,1,6,21,3,29,21,0,1,0,15,5,0,42,0,16,8,0,42,21,3,74,0,7,0,46,10,0,41,21,0,2,0,15,16,0,42,0,16,8,8,8,7,5,22,0,3,11,14,31,0,1,15,275,15,276,3,2,0,43,0,15,0,39,0,22,8,0,20,0,52,10,0,40,0,8,8,8,31,0,2,6,25,21,0,1,21,2,7,31,0,2,17,0,30,0,6,7,21,1,4,0,30,31,0,1,0,42,0,8,8,7,5,6,22,1,4,12,25,31,0,1,3,1,3,0,0,26,3,2,0,43,0,25,21,3,4,9,8,21,1,6,6,22,1,6,12,25,31,0,1,21,2,8,21,1,6,8,25,31,0,1,0,15,5,22,0,3,11,0,22,5,0,6,0,50,6,0,6,22,1,3,13,14,31,0,3,0,30,21,1,4,7,5,25,15,277,22,0,3,11,14,21,3,11,21,0,3,15,278,3,2,0,43,0,24,0,39,0,35,21,3,72,7,8,8,3,2,0,43,0,24,0,16,0,45,10,21,3,4,9,8,22,0,4,11,14,31,0,2,31,0,1,3,2,21,0,4,0,45,6,22,0,5,11,14,21,1,3,0,17,5,0,30,15,279,7,5,22,0,6,11,14,31,0,6,0,30,0,16,0,41,0,46,8,7,21,3,11,0,30,0,16,0,41,0,45,8,7,10,0,32,21,3,70,7,3,2,0,43,31,0,3,0,12,21,0,5,6,8,5,25,21,0,1,21,3,8,5,22,0,1,12,14,21,0,1,0,14,5,22,0,3,11,14,31,0,1,0,15,5,22,0,4,11,0,22,5,22,0,5,11,14,21,1,3,0,30,0,21,0,41,0,70,8,7,5,0,35,21,3,117,7,0,46,6,0,5,0,138,6,14,21,1,3,0,3,21,0,5,6,22,0,6,11,14,21,1,3,0,4,21,0,6,6,0,33,0,29,7,22,1,4,13,14,0,45,22,0,7,11,14,0,32,21,1,4,7,0,16,15,280,10,22,0,8,11,14,21,3,74,0,5,0,139,10,22,0,9,11,14,31,0,6,0,34,31,0,4,0,42,0,16,8,21,0,8,0,24,15,281,31,0,8,10,3,3,0,43,0,11,0,41,0,47,8,8,7,31,0,5,0,17,5,6,0,15,31,0,3,6,25,21,0,1,0,34,0,25,0,12,21,0,1,31,0,5,5,10,0,44,31,0,4,8,7,31,0,1,0,22,5,0,17,5,6,25,31,0,1,0,15,0,39,0,32,21,2,12,7,0,16,21,0,2,19,21,1,6,31,0,0,0,41,21,0,2,0,6,0,46,17,8,8,8,0,15,0,14,10,21,1,5,3,2,0,43,21,2,12,0,22,5,0,23,31,0,2,17,8,5,25,31,0,1,22,2,4,12,0,33,0,16,7,21,2,6,6,22,2,5,12,14,0,50,22,2,3,12,25,21,1,5,22,0,3,11,14,31,0,1,21,1,6,22,1,5,13,14,31,0,3,25,31,0,4,31,0,1,31,0,2,17,25,31,0,1,22,0,3,11,14,15,282,25,31,0,1,22,0,3,11,14,15,283,25,31,0,1,0,17,5,0,30,0,32,31,0,4,0,1,5,7,7,5,25,21,0,1,21,3,12,0,46,6,22,0,3,11,0,35,0,8,7,22,1,6,13,14,0,15,0,41,31,0,3,0,26,31,0,2,0,19,16,21,2,2,0,7,0,46,6,0,44,0,24,0,7,31,0,1,0,22,5,10,0,18,0,45,10,8,16,3,1,6,8,22,1,7,12,25,21,1,6,0,8,31,0,2,17,21,1,5,5,0,33,0,26,7,0,26,3,2,0,43,21,1,3,8,31,0,1,6,25,21,0,1,0,26,31,0,1,0,22,5,0,7,31,0,2,17,0,17,0,39,0,30,0,46,7,8,5,6,25,31,0,1,0,30,0,6,7,31,0,2,0,30,31,0,4,0,42,0,8,8,7,16,17,25,21,0,1,0,46,0,42,0,12,8,0,7,0,46,10,0,44,21,1,5,21,0,2,7,0,41,0,17,8,8,21,1,7,6,21,1,5,31,0,2,0,8,21,1,7,17,7,22,1,6,13,14,0,46,22,1,7,12,14,31,0,1,0,22,5,25,21,0,2,0,8,22,1,7,13,14,31,0,2,25,31,0,1,14,0,46,22,1,9,12,25,21,1,4,0,28,21,1,3,6,22,0,3,11,0,26,22,1,10,13,14,31,0,3,0,35,0,8,7,21,1,7,6,0,12,0,41,0,46,8,0,7,0,46,10,0,44,15,284,8,5,14,21,0,1,0,15,5,0,42,0,16,8,22,0,4,11,14,21,1,9,0,24,0,44,15,285,8,31,0,1,6,14,21,1,6,0,15,21,1,10,6,0,30,21,0,4,7,5,25,0,46,0,7,21,2,3,6,15,286,5,0,33,0,29,7,21,1,3,6,0,26,21,1,6,3,1,6,0,31,0,8,7,5,21,3,57,5,22,0,3,11,14,31,0,2,0,24,0,34,15,287,7,31,0,3,10,0,35,0,30,0,6,7,7,9,0,40,0,30,0,6,7,8,21,1,4,6,0,46,0,42,0,12,8,0,7,0,46,10,0,44,0,33,0,17,0,15,21,1,5,10,0,42,0,30,0,6,7,8,7,8,21,1,6,6,0,33,0,29,7,31,0,1,0,15,5,6,25,21,1,5,0,26,31,0,2,17,0,26,21,1,4,6,0,33,0,15,7,3,0,6,25,21,0,2,0,22,5,0,20,0,45,6,0,5,0,172,6,14,21,0,2,0,22,5,0,17,5,0,34,0,20,0,41,0,45,8,0,42,0,8,8,7,31,0,2,6,25,21,2,7,0,7,31,0,1,6,0,17,5,0,30,21,2,6,0,1,5,7,5,0,26,22,2,6,13,14,21,2,7,25,31,0,1,0,22,0,42,0,21,8,0,44,0,33,0,26,7,0,42,31,0,0,8,8,31,0,2,17,25,31,0,1,14,0,45,22,1,3,12,14,21,2,12,21,2,7,0,34,0,6,7,31,0,4,6,7,22,1,2,12,25,21,3,76,0,20,21,0,1,0,18,0,45,6,10,0,45,3,2,0,16,31,0,1,0,13,0,45,6,0,8,31,0,2,17,6,25,0,45,21,1,3,5,14,31,0,1,21,2,10,0,24,21,1,2,31,0,2,19,7,5,25,0,45,21,1,3,5,14,31,0,2,21,2,10,31,0,1,0,42,21,1,2,8,7,5,25,0,45,21,1,3,5,14,31,0,1,21,2,11,21,1,2,7,31,0,2,17,25,0,25,31,0,1,31,0,4,10,25,21,0,1,21,3,6,5,0,5,0,188,6,14,21,0,1,0,11,22,1,4,13,14,31,0,1,0,18,22,1,3,13,25,31,0,1,0,17,5,0,26,21,1,5,6,0,31,31,0,2,7,5,25,31,0,1,31,0,5,5,31,0,4,31,0,2,17,25,31,0,1,21,3,164,5,25,31,0,1,21,3,164,5,25,31,0,1,0,35,21,2,3,7,5,22,0,3,22,0,4,4,2,11,14,31,0,3,22,2,4,12,14,31,0,4,0,8,22,1,4,13,25,21,1,4,0,40,31,0,1,8,25,21,1,8,0,42,31,0,1,0,41,21,1,4,8,8,25,31,0,1,0,42,21,1,12,8,22,0,3,11,14,0,46,0,42,0,21,8,0,44,15,288,8,22,0,4,11,14,0,50,21,0,4,0,46,0,6,21,2,6,6,6,0,6,0,46,6,25,21,0,1,0,13,0,46,6,0,8,22,1,5,13,14,31,0,1,0,6,22,1,6,13,25,21,1,7,21,1,3,21,3,4,15,289,31,0,1,7,8,5,22,0,3,11,14,0,24,21,2,3,3,2,0,43,0,13,0,41,21,2,3,8,8,22,0,4,11,14,0,45,0,12,21,2,3,6,0,6,21,2,3,6,0,2,0,47,6,0,18,5,22,0,5,11,0,17,5,0,30,0,24,0,6,0,46,10,0,7,31,0,5,10,0,10,0,47,10,7,5,0,35,15,290,7,21,2,3,0,17,5,6,25,31,0,1,0,30,21,1,10,0,42,0,7,8,0,7,0,41,21,1,9,8,3,2,0,16,21,3,2,6,7,5,0,4,0,41,0,3,8,5,25,21,2,3,0,8,0,47,6,0,13,21,0,1,0,35,0,11,7,5,22,1,10,12,0,7,31,0,1,0,35,0,18,7,5,22,1,9,12,6,6,25,31,0,1,14,21,2,4,21,2,9,3,2,0,30,0,17,0,30,0,8,0,41,21,2,6,8,7,9,7,5,22,0,3,22,0,4,4,2,11,14,31,0,4,0,30,15,291,7,5,25,21,0,2,21,4,33,5,21,4,57,5,22,0,3,11,14,31,0,1,21,4,32,31,0,2,0,29,21,0,3,17,6,0,15,5,0,30,0,46,0,42,0,7,8,0,18,0,45,10,7,5,0,33,0,29,7,31,0,3,6,22,0,4,11,14,0,7,0,41,0,46,8,0,8,0,41,21,2,4,0,42,0,7,8,8,0,7,0,25,10,3,2,0,16,21,3,2,6,22,0,5,11,14,21,2,9,0,17,5,0,34,0,8,0,41,21,2,6,8,0,40,21,1,3,8,31,0,5,0,25,10,7,31,0,4,6,25,31,0,0,0,45,3,2,25,31,0,2,22,0,3,11,14,31,0,1,0,30,0,15,7,5,22,0,4,11,0,16,0,45,6,0,22,5,22,0,5,11,14,0,50,22,0,6,11,14,15,292,0,42,21,1,4,8,22,0,7,11,14,15,293,25,31,0,1,21,1,5,5,22,0,3,22,0,4,4,2,11,14,31,0,3,22,1,5,12,14,31,0,4,25,0,46,0,7,31,0,1,0,6,22,1,7,13,6,25,0,46,0,7,21,0,1,6,0,17,5,0,30,0,32,21,2,4,7,0,16,0,6,0,41,31,0,1,0,7,21,1,7,6,8,10,21,1,9,21,0,2,19,7,5,14,31,0,2,25,0,45,0,32,21,1,3,31,0,1,7,7,5,21,2,3,5,25,0,45,0,32,31,0,2,21,1,3,31,0,1,8,7,5,21,2,3,5,25,21,0,1,0,17,5,21,2,5,31,0,1,7,22,2,6,13,25,0,32,31,0,2,0,1,16,7,21,1,4,3,2,0,43,0,13,0,41,0,45,8,8,22,1,4,12,25,21,0,1,0,17,5,0,30,0,7,0,41,31,0,1,8,7,5,25,31,0,1,0,17,5,0,30,0,8,0,41,31,0,2,8,7,5,25,0,47,0,9,21,0,2,17,0,11,5,22,0,3,11,0,6,21,0,1,6,22,0,4,11,21,1,3,5,22,0,5,11,14,31,0,1,31,0,4,3,2,0,16,21,0,5,6,21,1,4,21,0,3,0,8,0,47,6,0,7,31,0,2,17,0,8,31,0,5,6,0,6,31,0,3,6,6,25,31,0,4,0,42,0,16,8,0,40,31,0,1,8,25,31,0,2,22,0,3,11,0,7,5,22,0,4,11,14,0,45,22,0,5,11,22,0,6,11,22,0,7,11,14,0,51,22,0,8,11,14,21,0,1,21,2,4,0,7,0,46,6,0,44,0,30,0,8,0,41,21,2,3,8,7,8,5,0,42,0,16,8,0,40,21,1,3,8,22,0,9,11,14,21,0,9,0,7,0,46,10,0,45,0,46,0,47,3,4,22,0,10,11,14,0,6,15,294,3,2,0,16,21,0,3,0,13,0,52,6,6,22,0,11,11,14,15,295,22,0,12,11,14,15,296,15,297,31,0,12,3,3,0,43,15,298,8,22,0,13,11,14,21,0,1,0,30,31,0,1,0,42,15,299,8,7,5,25,21,1,3,0,30,31,0,1,0,42,21,2,3,8,7,5,21,4,3,5,25,21,1,4,0,30,0,16,0,41,31,0,1,8,7,5,25,0,46,0,6,22,1,6,13,14,21,1,6,21,1,7,0,41,0,32,31,0,0,7,8,0,32,21,1,3,7,3,2,0,43,0,13,0,41,21,1,5,8,8,5,22,0,3,11,14,0,45,31,0,3,5,25,21,0,1,21,1,8,0,7,0,46,6,0,44,21,1,9,0,44,15,300,8,8,0,46,0,7,31,0,1,6,6,25,31,0,2,0,6,21,1,3,6,22,1,4,12,14,31,0,1,0,6,21,1,3,6,22,1,7,12,21,2,4,5,22,1,6,12,0,6,21,1,3,6,21,2,4,5,22,1,5,12,14,21,1,7,0,13,21,4,3,6,22,1,8,12,14,21,1,6,21,1,11,5,14,21,1,7,21,1,13,21,1,4,6,25,21,0,2,0,6,0,46,6,22,1,4,12,0,12,21,1,6,6,0,8,0,47,6,0,6,22,1,8,13,14,31,0,2,25,21,0,1,0,6,0,46,6,22,1,7,12,0,12,21,1,5,6,0,6,22,1,8,13,14,31,0,1,25,31,0,1,21,1,10,0,43,21,1,8,8,31,0,2,17,25,31,0,1,0,16,21,1,7,21,1,13,21,1,4,6,6,25,0,47,22,2,8,12,14,21,2,4,22,2,7,12,14,31,0,1,22,2,4,12,25] - ,[provide[0],provide[1],provide[2],provide[3],provide[4],provide[5],provide[6],provide[7],provide[8],provide[9],provide[10],runtime_0[0],provide[12],provide[13],provide[14],provide[15],provide[16],provide[17],runtime_0[1],runtime_0[2],runtime_0[3],runtime_0[4],runtime_0[5],runtime_0[6],runtime_0[7],runtime_0[8],runtime_0[9],runtime_0[10],runtime_0[11],runtime_0[12],provide[18],provide[19],runtime_0[13],runtime_0[14],runtime_0[15],runtime_0[16],provide[20],provide[21],provide[22],runtime_0[17],runtime_0[18],runtime_0[19],runtime_0[20],runtime_0[21],runtime_0[22],0,1,2,Infinity,-Infinity,-1,3,8,5,4,'∾','+','-','×','÷','⋆','¬','⌊','⌈','∨','∧','≠','=','>','≥','\0','˙','√','<','⊢','⊣','≍','↑','↓','↕','⌽','⍉','/','⊔','˜','¨','⌜','˘','`','∘','○','⌾','⍟','⊘','⊸','⟜',str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!˙˜˘¨⌜⁼´˝`∘○⊸⟜⌾⊘◶⎉⚇⍟⎊%"),str("´: Identity not found"),str("´: 𝕩 must be a list"),str("Mapping: Equal-rank argument shapes don\'t agree"),str("Mapping: Argument shape prefixes don\'t agree"),str("⍋𝕩: 𝕩 must have rank at least 1"),str("⍋ or ⍒: Rank of 𝕨 must be at least 1"),str("⍋ or ⍒: Rank of 𝕩 must be at least cell rank of 𝕨"),str("⍋ or ⍒: 𝕨 must be sorted"),str("p⊐𝕩 or 𝕨∊p: p must have rank at least 1"),str("p⊐n or n∊p: Rank of n must be at least cell rank of p"),str("∊𝕩 or ⊐𝕩: 𝕩 must have rank at least 1"),str("𝕨⍷𝕩: Rank of 𝕨 cannot exceed rank of 𝕩"),str("/𝕩: 𝕩 must have rank 1"),str("/𝕩: 𝕩 must consist of natural numbers"),str("↑𝕩: 𝕩 must have rank at least 1"),str("↓𝕩: 𝕩 must have rank at least 1"),str("𝕨⊑𝕩: Indices in 𝕨 must consist of integers"),str("𝕨⊑𝕩: Index out of range"),str("𝕨⊏𝕩: Indices in 𝕨 must be integers"),str("𝕨⊏𝕩: Indices out of range"),str("𝕨⊑𝕩: 𝕩 must be a list when 𝕨 is a number"),str("𝕨⊑𝕩: Indices in compound 𝕨 must be lists"),str("𝕨⊑𝕩: Index length in 𝕨 must match rank of 𝕩"),str("𝕨"),str("𝕩: "),str("𝕩 must have rank at least 1 for simple 𝕨"),str("Compound 𝕨 must have rank at most 1"),str("Length of compound 𝕨 must be at most rank of 𝕩"),str("𝕨 must be an array of numbers or list of such arrays"),str("⊏𝕩: 𝕩 must have rank at least 1"),str("⊏𝕩: 𝕩 cannot have length 0"),str("⊏"),str("⌽𝕩: 𝕩 must have rank at least 1"),str("𝕨⌽𝕩: 𝕨 must consist of integers"),str("𝕨⌽𝕩: 𝕨 too large"),str("⌽"),str("𝕨/𝕩: 𝕨 must consist of natural numbers"),str("𝕨/𝕩: Lengths of components of 𝕨 must match 𝕩"),str("𝕨/𝕩: Components of 𝕨 must have rank 0 or 1"),str("/"),str("=≠≡≢"),str("Cannot modify fill with Structural Under"),str("⌾: Incompatible result elements in structural Under"),str(">𝕩: Elements of 𝕩 must have matching shapes"),str("𝕨∾𝕩: Rank of 𝕨 and 𝕩 must differ by at most 1"),str("𝕨∾𝕩: Cell shapes of 𝕨 and 𝕩 must match"),str("∾𝕩: Elements of 𝕩 must all have the same rank"),str("∾𝕩: 𝕩 element rank must be at least argument rank"),str("∾𝕩: 𝕩 element shapes must be compatible"),str("∾𝕩: 𝕩 element trailing shapes must match"),str("∾𝕩: empty 𝕩 fill rank must be at least argument rank"),str("∾𝕩: 𝕩 must be an array"),str("⊢⊣˜∘○⊸⟜⊘◶"),str("=≠≢"),str("<"),str("≍"),str("↕/»«⊔"),str("⥊↑↓⌽⍉⊏⊑"),str("↑"),str("↓"),str("𝕩: 𝕨 must "),str("have rank at most 1"),str("consist of integers"),str("« or »: 𝕩 must have rank at least 1"),str("« or »: 𝕨 must not have higher rank than 𝕩"),str("« or »: Rank of 𝕨 must be at least rank of 𝕩 minus 1"),str("« or »: 𝕨 must share 𝕩\'s major cell shape"),str("↕𝕩: 𝕩 must consist of natural numbers"),str("↕𝕩: 𝕩 must be a number or list"),str("𝕨↕𝕩: 𝕨 must have rank at most 1"),str("𝕨↕𝕩: Length of 𝕨 must be at most rank of 𝕩"),str("𝕨↕𝕩: 𝕨 must consist of natural numbers"),str("𝕨↕𝕩: Window length 𝕨 must be at most axis length plus one"),str("˘: Argument lengths don\'t agree"),str("˝: 𝕩 must have rank at least 1"),str("˝: Identity does not exist"),str("∘⌊⌽↑"),str("𝕨⥊𝕩: 𝕨 must have rank at most 1"),str("𝕨⥊𝕩: 𝕨 must consist of natural numbers"),str("𝕨⥊𝕩: Can\'t compute axis length when rest of shape is empty"),str("𝕨⥊𝕩: 𝕨 must consist of natural numbers or ∘ ⌊ ⌽ ↑"),str("𝕨⥊𝕩: Shape must be exact when reshaping with ∘"),str("⊔: Grouping argument must consist of integers"),str("⊔: Grouping argument values cannot be less than ¯1"),str("⊔𝕩: 𝕩 must be a list"),str("𝕨⊔𝕩: Rank of simple 𝕨 must be at most rank of 𝕩"),str("𝕨⊔𝕩: Lengths of 𝕨 must equal to 𝕩, or one more only in a rank-1 component"),str("𝕨⊔𝕩: 𝕩 must be an array"),str("⎉ or ⚇: 𝔾 result must have rank at most 1"),str("⎉ or ⚇: 𝔾 result must have 1 to 3 elements"),str("⎉ or ⚇: 𝔾 result must consist of integers"),str("⍟: 𝕨𝔾𝕩 must consist of integers"),str("≥: Needs two arguments"),str("≤: Needs two arguments"),str("𝕨⊔𝕩: Compound 𝕨 must be a list"),str("𝕨⊔𝕩: Total rank of 𝕨 must be at most rank of 𝕩"),str("⊒: Rank of 𝕨 must be at least 1"),str("⊒: Rank of 𝕩 must be at least cell rank of 𝕨"),str("𝕨⍉𝕩: 𝕨 must have rank at most 1"),str("𝕨⍉𝕩: Length of 𝕨 must not exceed rank of 𝕩"),str("𝕨⍉𝕩: 𝕨 must consist of natural numbers"),str("𝕨⍉𝕩: Skipped result axis"),str("Cannot currently invert blocks"),str("Cannot invert modifier"),str("⁼: Inverse failed"),str("⁼: Inverse does not exist"),str("⁼: Inverse not found")] - ,[[0,1,0],[0,0,1],[0,0,2],[0,0,3],[0,0,4],[0,0,[[],[5]]],[0,0,6],[1,1,7],[2,1,8],[1,1,9],[0,0,10],[2,1,11],[0,0,12],[1,0,13],[1,1,14],[1,1,15],[0,0,16],[0,0,17],[1,0,18],[0,0,[[],[19]]],[1,1,20],[1,1,21],[1,0,22],[0,0,[[],[23]]],[0,0,24],[0,0,25],[0,0,26],[0,0,27],[0,0,28],[0,0,29],[0,0,30],[0,0,31],[0,0,32],[0,0,[[],[33]]],[0,0,34],[0,0,[[],[35]]],[1,1,36],[0,0,37],[0,0,[[],[38]]],[0,0,[[],[39]]],[0,0,40],[0,0,41],[0,0,[[],[42]]],[0,0,[[],[43]]],[0,1,44],[0,0,45],[0,0,[[],[46]]],[0,0,47],[0,0,48],[0,0,[[],[49]]],[2,1,50],[1,0,51],[1,0,52],[0,0,53],[0,0,[[],[54]]],[2,0,55],[0,0,56],[0,0,[[],[57]]],[0,0,58],[2,1,59],[0,0,60],[0,0,61],[0,0,62],[0,0,63],[0,0,[[],[64]]],[0,0,[[],[65]]],[0,0,66],[0,0,67],[0,0,68],[0,1,69],[1,1,70],[0,0,71],[0,0,72],[0,0,73],[0,0,74],[0,0,[[],[75]]],[0,0,76],[1,0,77],[1,0,78],[0,0,[[],[79]]],[1,0,80],[0,0,81],[0,0,[[],[82]]],[0,0,[[],[83]]],[0,0,[[],[84]]],[1,1,85],[2,0,86],[2,0,87],[2,0,88],[0,0,[[],[89]]],[0,0,[[],[90]]],[0,0,[[],[91]]],[0,0,[[],[92]]],[0,0,[[],[93]]],[0,0,[[],[94]]],[0,0,[[],[95]]],[1,1,96],[2,0,97],[1,1,98],[0,0,99],[0,0,100],[0,0,[[],[101]]],[0,0,102],[0,0,103],[0,0,104],[0,0,105],[0,0,[[],[106]]],[0,0,107],[0,0,[[],[108]]],[0,0,109],[2,0,110],[0,0,111],[0,0,[[],[112]]],[0,0,113],[0,0,[[],[114]]],[0,0,115],[0,0,116],[0,0,117],[0,0,118],[0,0,119],[0,0,120],[0,0,121],[1,1,122],[0,0,[[],[123]]],[0,0,[[],[124]]],[0,0,[[],[125]]],[0,0,[[],[126]]],[0,0,[[],[127]]],[0,0,[[],[128]]],[0,0,129],[0,0,[[],[130]]],[2,0,131],[0,0,132],[0,0,133],[0,0,134],[1,0,135],[1,0,[[],[136]]],[0,0,137],[0,0,[[],[138]]],[0,0,[[],[139]]],[0,0,140],[0,0,141],[0,0,142],[0,0,143],[0,0,[[],[144]]],[0,0,[[],[145]]],[0,0,146],[2,0,147],[0,0,[[],[148]]],[0,0,149],[0,0,[[],[150]]],[0,0,[[],[151]]],[0,0,152],[1,1,153],[0,0,154],[0,0,[[],[155]]],[0,0,156],[0,0,[[],[157]]],[0,0,158],[0,0,[[],[159]]],[0,0,160],[0,0,161],[0,0,[[],[162]]],[2,0,163],[0,0,[[],[164]]],[0,0,[[],[165]]],[0,0,166],[0,0,167],[1,0,[[],[168]]],[0,0,[[],[169]]],[1,0,170],[0,0,171],[1,0,172],[2,0,[[],[173]]],[0,0,174],[0,0,175],[0,0,[[],[176]]],[0,0,177],[0,0,178],[0,0,[[],[179]]],[1,0,[[],[180]]],[1,1,181],[0,0,[[],[182]]],[0,0,[[],[183]]],[0,0,[[],[184]]],[0,0,[[],[185]]],[0,0,[[],[186]]],[0,0,[[],[187]]],[0,0,[[],[188]]],[0,0,189],[0,0,190],[1,1,191],[0,0,192],[0,0,[[],[193]]],[0,0,[[],[194]]],[0,0,195],[0,0,196],[0,0,197],[0,0,198],[0,0,199],[0,0,200],[0,0,201],[0,0,202],[0,0,203],[0,0,204],[2,1,205],[2,1,206],[1,1,207],[1,1,208],[1,1,209],[0,0,[[],[210]]],[0,0,211],[0,0,212],[0,0,213],[0,0,[[],[214]]],[0,0,215],[0,0,[[],[216]]],[0,0,[[],[217]]],[0,0,[[],[218]]],[1,1,219],[0,0,220],[0,0,[[],[221]]],[0,0,222],[1,0,223],[0,0,224],[0,0,[[],[225]]],[0,0,226],[0,0,227],[0,0,[[],[228]]],[0,0,229],[0,0,230],[0,0,231],[0,0,232],[0,0,[[],[233]]],[0,0,234],[2,0,235],[0,0,[[],[236]]],[0,0,237],[0,0,238],[1,0,239],[0,0,240],[0,0,241],[1,0,242],[0,0,[[],[243]]],[0,0,244],[0,0,245],[1,0,246],[0,0,[[],[247]]],[0,0,[[],[248]]],[0,0,249],[0,0,250],[0,0,[[],[251]]],[0,0,252],[0,0,[[],[253]]],[0,0,254],[0,0,255],[1,0,256],[0,0,257],[0,0,258],[0,0,[[],[259]]],[0,0,260],[1,0,261],[0,0,262],[0,0,[[],[263]]],[2,0,264],[1,1,265],[1,1,266],[0,0,267],[0,0,268],[0,0,269],[0,0,270],[0,0,271],[0,0,272],[0,0,273],[0,0,274],[0,0,275],[0,0,[[],[276]]],[0,0,277],[0,0,[[],[278]]],[0,0,279],[0,0,280],[0,0,[[],[281]]],[1,1,282],[2,1,283],[0,0,284],[0,0,[[],[285]]],[0,0,286],[0,0,[[],[287]]],[0,0,288],[1,0,289],[0,0,[[],[290]]],[0,0,291],[0,0,292],[0,0,293],[0,0,294],[0,0,[[],[295]]],[0,0,[[],[296]]],[0,0,297],[0,0,298],[0,0,299],[0,0,300]] - ,[[0,184],[4065,3],[4073,3],[4077,3],[4090,3],[4102,3],[4111,3],[4117,2],[4146,3],[4178,2],[4195,4],[4257,5],[4293,3],[4300,5],[4358,4],[4424,3],[4479,3],[4490,4],[4555,9],[4624,5],[4701,5],[4768,4],[4824,8],[4996,8],[5153,3],[5198,3],[5247,3],[5364,6],[5449,3],[5473,7],[5587,3],[5649,4],[5720,6],[5784,3],[5824,5],[5901,3],[5918,14],[6098,3],[6144,3],[6164,3],[6181,4],[6239,4],[6315,5],[6389,3],[6448,0],[6459,4],[6539,3],[6549,3],[6556,3],[6570,3],[6578,3],[6616,5],[6653,5],[6680,3],[6684,3],[6698,16],[6993,3],[7018,3],[7043,3],[7070,3],[7129,4],[7229,7],[7426,7],[7472,14],[7696,5],[7775,3],[7783,6],[7810,5],[7831,6],[7858,11],[8191,9],[8348,4],[8424,7],[8536,7],[8653,3],[8761,4],[8823,8],[8935,8],[9009,7],[9071,9],[9244,9],[9392,4],[9503,8],[9717,3],[9761,3],[9898,2],[9919,13],[10032,9],[10214,10],[10287,3],[10313,10],[10721,4],[10826,3],[10900,3],[10951,4],[11078,4],[11194,2],[11202,6],[11217,2],[11276,3],[11284,3],[11292,3],[11312,8],[11387,3],[11395,3],[11403,3],[11411,3],[11419,3],[11427,3],[11438,3],[11459,7],[11500,6],[11719,4],[11819,3],[11862,5],[12000,3],[12047,3],[12073,3],[12106,3],[12150,3],[12198,3],[12210,3],[12283,2],[12309,4],[12345,3],[12360,3],[12389,3],[12404,3],[12422,3],[12436,3],[12446,3],[12498,6],[12526,3],[12554,3],[12562,3],[12570,5],[12605,12],[12778,3],[12789,3],[12806,3],[12823,3],[12834,3],[12845,3],[12860,7],[12933,6],[12979,3],[12997,3],[13004,6],[13039,10],[13216,4],[13272,11],[13473,4],[13540,3],[13565,2],[13580,3],[13607,7],[13748,3],[13777,3],[13787,3],[13806,3],[13816,3],[13825,3],[13835,3],[13852,11],[13925,6],[14028,8],[14106,3],[14114,3],[14156,7],[14182,9],[14428,5],[14444,6],[14566,5],[14599,6],[14628,3],[14638,3],[14648,4],[14687,4],[14710,3],[14718,3],[14743,6],[14839,2],[14889,8],[15070,11],[15275,3],[15334,3],[15361,3],[15378,3],[15395,8],[15577,3],[15591,3],[15622,2],[15656,3],[15691,3],[15709,3],[15727,5],[15798,3],[15818,8],[16048,3],[16070,3],[16124,3],[16154,3],[16185,3],[16219,5],[16286,3],[16295,3],[16303,3],[16313,2],[16327,2],[16342,6],[16436,3],[16446,3],[16453,9],[16587,3],[16613,3],[16631,3],[16655,3],[16676,3],[16687,3],[16700,2],[16704,3],[16740,5],[16842,3],[16889,5],[16912,3],[16929,14],[17213,13],[17410,3],[17453,4],[17536,3],[17572,3],[17601,3],[17612,4],[17648,7],[17785,10],[17975,6],[18010,3],[18075,3],[18103,4],[18126,5],[18137,4],[18148,4],[18159,5],[18179,4],[18254,3],[18287,3],[18317,5],[18342,3],[18408,3],[18422,3],[18433,5],[18532,4],[18661,3],[18685,3],[18731,3],[18764,3],[18793,5],[18825,3],[18861,3],[18886,3],[18911,3],[18933,5],[18943,3],[18976,3],[18996,6],[19011,2],[19019,2],[19027,5],[19065,3],[19075,3],[19091,5],[19142,3],[19167,6],[19276,3],[19316,3],[19357,5],[19407,6],[19544,3],[19552,8],[19609,5],[19638,3],[19653,3],[19703,2],[19721,3],[19742,3],[19760,3],[19789,3],[19808,3],[19827,6],[19906,5],[19921,14],[20085,3],[20106,3],[20122,4],[20178,3],[20210,3],[20293,3],[20327,3],[20356,3],[20373,3],[20390,3]] + [0,96,22,0,0,11,14,15,1,22,0,1,11,14,15,2,22,0,2,11,14,15,3,22,0,3,11,14,0,0,0,12,0,45,10,22,0,4,11,14,0,0,0,13,0,46,10,22,0,5,11,14,0,45,0,12,0,41,0,11,8,3,2,0,43,0,0,0,12,0,46,10,8,22,0,6,11,14,0,45,0,12,0,41,0,11,0,39,0,19,8,8,3,2,0,43,0,0,0,12,0,46,10,8,22,0,7,11,14,21,0,5,0,44,0,20,8,22,0,8,11,14,0,30,21,0,5,7,0,35,0,8,7,0,46,10,22,0,9,11,14,15,4,0,15,3,2,0,43,21,0,4,8,22,0,10,11,14,15,5,0,37,15,6,8,22,0,11,11,14,0,14,0,42,0,28,8,22,0,12,11,14,0,34,0,12,7,0,35,0,8,7,0,46,10,22,0,13,11,14,0,4,0,41,0,30,0,46,7,8,22,0,14,11,14,15,7,22,0,15,11,14,15,8,22,0,16,11,14,15,9,22,0,17,11,14,21,0,17,0,55,7,22,0,18,11,14,15,10,22,0,19,11,14,15,11,22,0,20,11,14,0,56,0,45,0,57,0,45,0,58,0,46,0,59,0,46,0,60,0,46,0,61,0,46,0,62,0,48,0,63,0,49,0,64,0,45,0,65,0,46,0,66,0,45,0,67,0,46,0,68,0,45,0,69,0,46,3,28,21,0,20,0,32,0,45,7,0,5,0,97,10,8,15,12,9,22,0,21,11,14,15,13,22,0,22,11,14,15,14,22,0,23,11,14,15,15,22,0,24,11,14,0,13,0,13,0,24,0,33,0,12,7,9,0,13,0,48,0,42,0,13,8,10,10,22,0,25,11,14,21,0,25,0,7,0,33,21,0,25,7,10,22,0,26,11,14,0,46,0,15,0,16,0,45,10,0,42,0,13,0,8,0,47,10,0,7,0,46,10,15,16,3,2,0,43,0,24,0,39,21,0,4,8,8,8,3,2,0,43,0,24,0,39,0,14,8,0,35,0,8,7,0,46,10,0,20,0,45,10,8,22,0,27,11,14,15,17,22,0,28,11,14,15,18,22,0,29,11,14,21,0,26,21,0,27,0,33,21,0,27,7,0,7,9,3,2,0,43,0,25,0,39,21,0,4,8,8,15,19,3,3,0,43,21,0,4,0,40,0,6,8,8,22,0,30,11,14,15,20,22,0,31,11,14,21,0,31,0,45,7,22,0,32,11,14,31,0,31,0,46,7,22,0,33,11,14,15,21,22,0,34,11,14,15,22,22,0,35,11,14,21,0,8,0,40,15,23,8,22,0,36,11,14,15,24,22,0,37,11,14,0,29,0,41,21,0,37,8,22,0,38,11,14,15,25,22,0,39,11,14,15,26,22,0,40,11,14,21,0,35,0,24,0,31,0,6,7,0,50,10,0,33,0,29,7,0,33,21,0,38,0,39,21,0,32,0,39,21,0,14,8,8,7,10,7,22,0,41,11,14,21,0,35,0,34,0,8,7,0,31,0,18,7,9,0,34,0,7,7,0,25,10,0,41,0,22,0,39,0,17,8,8,7,22,0,42,11,14,21,0,8,0,24,0,36,15,27,8,3,2,0,43,0,12,0,20,0,45,10,8,22,0,43,11,14,15,28,0,44,0,24,0,36,15,29,8,8,22,0,44,11,14,15,30,22,0,45,11,14,15,31,22,0,46,11,14,21,0,6,0,5,0,113,10,0,114,3,2,0,12,0,41,0,11,8,0,5,0,115,10,0,116,3,2,3,2,0,30,15,32,7,5,22,0,47,22,0,48,4,2,11,14,15,33,22,0,49,11,14,21,0,8,0,42,15,34,8,22,0,50,11,14,15,35,31,0,50,3,2,0,43,0,25,0,39,0,15,8,21,0,9,9,8,22,0,51,11,14,31,0,49,21,0,51,3,2,0,43,0,25,0,39,21,0,4,8,8,22,0,52,11,14,15,36,22,0,53,11,14,15,37,22,0,54,11,14,21,0,8,0,40,21,0,53,0,128,0,15,0,30,0,0,0,12,0,46,10,7,9,0,35,0,8,7,0,46,10,0,46,0,45,0,24,0,29,15,38,10,15,39,3,6,7,8,22,0,55,11,14,0,24,0,15,0,32,0,45,7,0,5,0,129,10,0,16,0,41,0,45,8,3,2,0,43,0,22,0,20,0,45,10,8,9,3,2,0,43,21,0,4,8,22,0,56,11,14,15,40,22,0,57,11,14,15,41,22,0,58,11,14,0,27,0,26,0,28,10,22,0,59,11,14,0,24,0,29,0,22,0,17,9,0,42,21,0,59,8,10,21,0,59,3,2,0,43,0,24,0,39,0,12,8,0,12,0,46,10,8,22,0,60,11,14,0,24,0,36,21,0,8,0,42,21,0,53,0,133,31,0,5,0,45,0,45,0,24,0,39,0,22,8,0,20,0,45,10,0,44,0,24,31,0,60,0,22,0,42,21,0,58,8,10,8,0,24,0,17,9,31,0,59,31,0,58,10,3,6,7,8,8,22,0,61,11,14,15,42,15,43,15,44,3,3,0,43,0,25,0,39,0,12,8,0,11,0,47,10,8,22,0,62,11,14,0,24,0,36,21,0,8,0,40,31,0,53,0,137,0,15,0,39,0,30,0,0,0,12,0,46,10,7,0,35,0,8,7,0,22,0,20,0,45,10,10,8,0,46,0,46,0,24,0,29,0,22,0,42,21,0,62,8,10,31,0,62,3,6,7,8,8,22,0,63,11,14,15,45,22,0,64,11,14,0,24,15,46,3,2,0,30,15,47,7,0,26,0,24,10,5,0,30,15,48,7,5,22,0,65,11,14,15,49,0,41,31,0,65,0,29,0,46,0,46,0,47,0,51,0,45,3,5,6,21,0,16,0,138,8,8,22,0,66,11,14,15,50,22,0,67,11,14,15,51,22,0,68,11,14,15,52,22,0,69,11,14,15,53,22,0,70,11,14,0,45,0,12,0,41,0,32,21,0,70,7,8,3,2,0,43,0,0,0,12,0,51,10,8,22,0,71,11,14,0,24,21,0,4,9,0,12,0,40,0,12,8,0,14,0,40,21,0,13,8,3,3,0,35,15,54,7,5,22,0,72,11,14,15,55,22,0,73,11,14,21,0,4,0,40,0,12,8,0,45,3,2,0,24,0,39,21,0,4,8,0,12,3,2,0,12,0,40,0,12,8,0,45,3,2,0,14,0,40,21,0,13,8,0,45,3,2,15,56,3,5,0,35,15,57,7,5,22,0,74,11,14,0,45,15,58,3,2,0,43,21,0,4,8,22,0,75,11,14,21,0,74,0,37,21,0,75,8,22,0,76,11,14,21,0,74,0,7,0,46,10,0,37,0,45,0,17,5,0,14,3,2,0,43,21,0,4,8,8,22,0,77,11,14,21,0,76,0,39,0,5,8,0,25,0,24,10,22,0,78,11,14,0,15,0,39,0,1,0,36,0,24,8,0,35,21,0,78,0,36,0,24,8,7,3,2,0,43,0,22,0,20,0,45,10,8,8,22,0,79,11,14,15,59,22,0,80,11,14,21,0,4,0,44,0,26,21,0,80,15,60,8,8,22,0,81,11,14,21,0,78,0,36,21,0,8,0,40,0,15,0,40,0,26,8,15,61,3,2,0,43,0,12,0,40,0,18,8,0,20,0,46,10,8,8,8,22,0,82,11,14,15,62,22,0,83,11,14,15,63,22,0,84,11,14,21,0,4,0,5,0,149,10,0,25,15,64,31,0,80,21,0,81,21,0,84,21,0,83,3,2,0,43,0,30,0,12,0,12,0,46,10,7,0,35,0,8,7,0,46,10,8,31,0,84,3,3,0,43,0,12,0,11,0,47,10,8,8,10,22,0,85,11,14,0,24,0,24,0,24,0,35,15,65,7,9,15,66,15,67,15,68,3,6,0,43,0,25,8,22,0,86,11,14,15,69,22,0,87,11,14,15,70,22,0,88,11,14,21,0,88,0,45,7,22,0,89,11,14,31,0,88,0,46,7,22,0,90,11,14,15,71,22,0,91,11,14,21,0,78,0,37,0,24,8,0,36,15,72,8,22,0,92,11,14,21,0,78,0,37,0,24,8,0,36,15,73,8,22,0,93,11,14,21,0,7,0,5,0,165,10,22,0,94,11,14,21,0,94,0,25,0,17,10,15,74,3,2,0,43,21,0,4,8,22,0,95,11,14,15,75,22,0,96,11,14,15,76,22,0,97,11,14,15,77,22,0,98,11,14,15,78,22,0,99,11,14,0,53,0,17,5,21,0,16,0,174,8,22,0,100,11,14,15,79,22,0,101,11,14,15,80,22,0,102,11,14,15,81,22,0,103,11,14,21,0,8,0,40,15,82,8,22,0,104,11,14,15,83,22,0,105,11,14,15,84,22,0,106,11,14,15,85,22,0,107,11,14,15,86,22,0,108,11,14,15,87,22,0,109,11,14,15,88,22,0,110,11,14,21,0,24,0,9,7,22,0,111,11,14,21,0,24,0,10,7,22,0,112,11,14,0,33,21,0,111,0,42,21,0,112,8,7,0,37,0,47,21,0,111,5,0,42,21,0,112,8,8,22,0,113,11,14,21,0,24,15,89,0,21,0,41,0,45,8,0,20,0,41,0,45,8,3,2,0,43,0,45,0,42,0,20,8,8,0,44,0,6,8,3,2,0,43,0,19,0,40,0,21,8,8,0,37,0,19,8,7,22,0,114,11,14,21,0,24,0,20,0,44,0,25,8,0,37,0,11,8,7,22,0,115,11,14,21,0,24,0,21,0,44,0,25,8,0,37,0,7,0,39,21,0,115,0,39,0,7,8,8,8,7,22,0,116,11,14,21,0,24,0,8,7,0,37,0,29,0,41,21,0,32,8,8,22,0,117,11,14,21,0,24,0,8,0,7,0,6,10,7,0,37,0,29,0,41,21,0,33,8,8,22,0,118,11,14,21,0,24,0,8,0,37,0,21,0,7,0,20,10,0,41,0,45,8,8,7,22,0,119,11,14,21,0,24,0,23,0,7,0,46,10,7,0,37,0,20,8,22,0,120,11,14,21,0,24,0,13,0,7,0,46,10,7,0,37,21,0,81,8,22,0,121,11,14,21,0,24,0,12,0,7,0,46,10,7,0,37,0,22,8,22,0,122,11,14,21,0,24,0,12,7,0,37,0,12,8,22,0,123,11,14,21,0,24,0,23,7,0,37,0,32,0,45,7,0,5,0,191,10,8,22,0,124,11,14,21,0,24,0,13,7,0,37,0,32,0,45,7,0,5,0,192,10,8,22,0,125,11,14,21,0,24,0,6,7,22,0,126,11,14,21,0,24,0,7,7,22,0,127,11,14,21,0,127,21,0,126,0,46,10,22,0,128,11,14,0,15,0,37,21,0,10,8,22,0,129,11,14,31,0,96,0,37,21,0,95,8,22,0,130,11,14,31,0,61,0,37,21,0,57,8,22,0,131,11,14,31,0,63,0,37,31,0,39,8,22,0,132,11,14,31,0,92,22,0,133,11,14,31,0,93,22,0,134,11,14,15,90,22,0,135,11,14,31,0,89,0,37,31,0,45,8,22,0,136,11,14,31,0,90,0,37,31,0,46,8,22,0,137,11,14,31,0,105,0,37,31,0,103,8,22,0,138,11,14,21,0,34,0,46,7,0,37,31,0,41,8,22,0,139,11,14,0,33,31,0,34,0,45,7,7,0,37,31,0,35,0,24,7,8,22,0,140,11,14,15,91,0,1,0,45,10,22,0,141,11,14,15,92,22,0,142,11,14,0,24,0,36,15,93,8,22,0,143,11,14,15,94,22,0,144,11,14,15,95,22,0,145,11,14,15,96,22,0,146,11,14,15,97,22,0,147,11,14,0,46,0,16,0,41,0,32,0,47,7,21,0,127,21,0,122,10,8,21,0,77,0,32,21,0,147,7,10,3,2,0,43,0,16,0,41,0,45,8,21,0,123,0,53,10,8,22,0,148,11,14,15,98,22,0,149,11,14,0,46,0,24,15,99,0,39,0,45,0,16,0,41,0,32,0,46,7,21,0,127,21,0,122,10,8,31,0,17,0,71,7,9,3,2,0,43,0,16,0,41,0,45,8,21,0,123,0,54,10,8,8,9,3,2,0,43,0,0,21,0,125,0,51,10,8,22,0,150,11,14,15,100,0,40,15,101,8,22,0,151,11,14,15,102,22,0,152,11,14,15,103,0,24,0,16,0,41,0,46,8,15,104,9,0,32,0,32,0,45,7,0,5,0,201,10,7,0,16,0,41,0,47,8,21,0,151,0,16,0,41,0,46,8,10,31,0,152,0,16,0,41,0,47,8,15,105,0,42,15,106,8,0,16,0,41,0,46,8,10,0,16,0,41,0,47,8,15,107,0,42,15,108,8,0,29,0,41,0,46,0,51,3,2,8,10,3,6,0,43,0,25,8,0,16,0,41,0,45,8,10,9,22,0,153,11,14,15,109,31,0,153,0,32,0,45,7,0,5,0,202,10,3,3,21,0,132,0,51,0,46,0,47,3,3,6,0,43,0,0,8,22,0,154,11,14,31,0,82,0,37,21,0,85,8,22,0,155,11,14,0,5,0,41,0,203,8,22,0,156,11,14,0,5,0,41,0,204,8,22,0,157,11,14,0,32,0,45,7,0,5,0,205,10,22,0,158,11,14,15,110,22,0,159,11,14,15,111,22,0,160,11,14,15,112,22,0,161,11,14,0,24,0,36,31,0,55,0,37,31,0,54,8,8,22,0,162,11,14,0,56,0,33,21,0,127,7,0,37,21,0,126,8,0,57,21,0,127,0,58,0,33,21,0,111,7,0,37,21,0,119,21,0,159,0,24,8,8,0,59,21,0,111,0,60,21,0,24,0,2,7,0,72,0,33,21,0,112,7,0,37,0,33,21,0,119,7,8,0,65,0,33,21,0,111,7,0,37,21,0,117,21,0,159,0,24,8,8,0,64,0,25,21,0,127,0,46,10,21,0,111,0,33,21,0,127,7,10,0,37,21,0,118,21,0,159,0,24,8,8,0,61,21,0,128,0,73,0,45,0,39,21,0,156,8,0,37,15,113,8,0,74,0,24,0,75,21,0,76,0,39,21,0,157,8,0,25,0,24,10,0,37,0,24,8,0,55,15,114,0,37,0,45,0,39,21,0,156,8,8,0,76,15,115,0,37,15,116,8,0,77,0,45,0,39,21,0,156,8,0,37,21,0,136,21,0,159,0,16,0,41,0,50,8,8,8,0,78,0,45,0,39,21,0,156,8,0,37,21,0,137,21,0,159,0,16,0,41,0,45,8,8,8,0,79,0,45,0,39,21,0,156,8,0,37,21,0,130,21,0,159,21,0,77,8,8,0,80,21,0,131,0,41,21,0,127,8,0,37,21,0,131,8,0,81,31,0,145,0,37,31,0,44,8,0,82,0,45,0,39,21,0,156,8,0,37,31,0,40,8,0,83,31,0,161,0,37,31,0,160,8,3,42,21,0,20,21,0,158,8,22,0,163,11,14,0,56,0,33,21,0,127,7,0,37,0,47,0,42,21,0,111,8,8,0,57,21,0,126,0,37,0,45,0,39,21,0,156,8,8,0,58,0,33,21,0,111,7,0,37,21,0,113,8,0,59,21,0,119,0,37,0,45,0,39,21,0,156,8,8,0,60,21,0,113,0,37,0,45,0,39,21,0,156,8,8,0,72,0,2,21,0,111,9,0,37,0,45,0,39,21,0,156,8,8,0,65,0,33,21,0,111,7,0,37,21,0,113,8,0,64,0,25,21,0,127,0,46,10,21,0,111,0,33,21,0,127,7,10,0,37,21,0,128,0,39,21,0,113,8,21,0,128,9,8,0,61,0,32,0,46,7,21,0,127,21,0,126,10,0,37,0,45,0,39,21,0,156,8,8,3,18,21,0,20,21,0,158,8,22,0,164,11,14,31,0,69,22,0,165,11,14,21,0,68,22,0,166,11,14,0,84,21,0,164,0,85,15,117,0,86,15,118,0,87,15,119,0,88,15,120,0,39,15,121,8,3,10,21,0,20,0,32,21,0,158,7,8,22,0,167,11,14,31,0,110,22,0,168,11,14,31,0,73,22,0,169,11,14,15,122,0,89,31,0,151,0,90,15,123,0,91,15,124,0,92,0,32,0,45,0,39,21,0,156,8,7,15,125,15,126,3,2,0,43,21,0,125,0,41,0,45,8,8,3,2,0,43,0,24,0,39,21,0,6,8,8,0,93,15,127,0,94,15,128,15,129,0,24,3,2,0,43,0,25,8,0,25,0,39,21,0,150,8,10,0,95,15,130,3,14,31,0,20,0,32,21,0,158,7,8,7,22,0,170,11,14,31,0,22,22,0,171,11,14,31,0,99,22,0,172,11,14,31,0,149,22,0,173,11,14,31,0,98,22,0,174,11,14,21,0,52,0,37,31,0,56,8,22,0,175,11,14,15,131,22,0,176,11,14,31,0,108,22,0,177,11,14,31,0,109,22,0,178,11,14,21,0,101,0,37,21,0,10,8,22,0,179,11,14,31,0,78,0,37,0,24,8,0,36,21,0,11,0,39,21,0,121,8,8,22,0,180,11,14,31,0,144,0,37,31,0,43,8,22,0,181,11,14,31,0,141,0,37,21,0,42,8,22,0,182,11,14,31,0,36,0,37,21,0,132,0,41,21,0,140,8,8,22,0,183,11,14,21,0,126,21,0,127,21,0,119,21,0,111,31,0,112,31,0,113,21,0,115,31,0,116,31,0,114,21,0,128,21,0,117,31,0,118,21,0,120,21,0,121,21,0,122,21,0,123,21,0,125,21,0,124,21,0,76,21,0,77,0,25,0,24,31,0,179,21,0,155,31,0,180,21,0,136,21,0,137,21,0,130,31,0,134,21,0,133,21,0,131,31,0,181,21,0,132,21,0,32,21,0,33,21,0,162,21,0,175,21,0,139,31,0,182,21,0,140,31,0,183,21,0,138,0,5,0,32,0,33,21,0,174,21,0,166,21,0,165,31,0,173,31,0,171,31,0,172,0,31,0,39,0,40,0,41,0,42,21,0,169,0,37,31,0,176,31,0,178,31,0,177,21,0,168,0,38,3,63,15,132,5,25,0,45,31,0,1,3,2,25,31,0,1,25,31,0,1,22,1,1,22,1,2,4,2,12,25,21,0,1,3,1,0,1,31,0,1,6,25,31,0,2,31,0,1,3,2,25,31,0,1,3,1,25,0,20,0,30,0,12,0,7,0,46,10,7,31,0,1,10,0,31,0,8,7,9,0,35,0,6,7,9,25,0,32,21,1,0,0,30,21,1,15,31,0,1,7,0,33,0,16,7,31,0,2,10,7,5,7,0,16,15,133,10,25,15,134,0,12,31,0,1,21,1,15,21,1,0,7,5,10,25,0,47,0,9,21,0,1,0,22,5,6,0,17,5,0,30,0,8,0,41,0,47,8,7,5,22,0,3,11,14,21,0,1,0,29,21,0,3,6,31,0,1,0,29,31,0,3,0,30,0,6,0,41,0,46,8,7,5,6,3,2,25,31,0,2,21,1,19,5,22,0,3,22,0,4,4,2,11,14,31,0,1,3,1,0,26,31,0,4,6,21,1,16,31,0,3,8,25,0,45,31,0,1,5,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,98,6,14,31,0,1,0,32,21,0,4,7,21,1,21,9,0,35,31,0,4,7,3,2,0,43,0,46,0,37,0,22,0,20,0,45,10,8,8,31,0,2,17,25,15,135,22,0,2,11,14,15,136,22,0,3,11,14,21,0,3,21,0,1,7,0,33,31,0,3,0,33,21,0,1,7,7,7,3,2,0,43,0,12,0,40,0,21,8,8,31,0,2,31,0,1,7,3,2,0,43,0,12,0,40,0,12,8,8,25,31,0,1,15,137,0,36,15,138,15,139,3,2,0,43,21,1,4,0,40,0,21,8,8,0,37,15,140,8,8,15,141,0,36,15,142,8,3,3,0,43,21,1,4,0,40,0,6,8,8,22,0,2,11,25,31,0,1,21,1,27,31,0,2,17,25,21,0,1,0,30,0,20,0,41,0,45,8,7,0,35,0,8,7,0,46,10,0,40,0,7,8,21,0,2,17,22,0,3,11,14,31,0,1,21,0,3,0,45,3,2,15,143,3,2,0,43,0,45,0,12,31,0,3,6,8,31,0,2,17,25,31,0,4,22,0,5,11,14,0,45,0,25,21,0,2,17,22,0,6,11,14,31,0,1,22,0,7,11,14,15,144,22,0,8,11,14,31,0,8,21,0,7,0,12,0,46,6,0,44,0,32,21,0,5,7,15,145,0,37,0,24,8,31,0,2,19,8,5,25,21,0,1,0,14,0,40,21,1,28,8,21,0,2,6,22,0,3,11,14,31,0,3,0,35,21,1,29,31,0,1,0,15,5,0,42,0,16,8,0,42,21,1,30,0,41,31,0,2,0,15,16,0,42,0,16,8,8,8,7,7,5,22,0,4,11,14,0,45,0,33,31,0,4,7,5,25,21,0,1,22,0,2,11,14,21,1,30,21,1,26,0,32,0,45,7,0,13,21,1,30,10,21,1,25,3,4,31,0,1,0,44,0,30,15,146,7,8,5,22,0,3,11,14,15,147,22,0,4,11,14,15,148,0,37,15,149,8,0,1,0,45,10,25,21,0,1,22,0,2,11,14,0,35,0,8,7,0,7,0,46,10,0,31,0,8,7,0,35,0,6,7,9,3,2,0,16,31,0,1,6,22,0,3,11,14,21,1,8,0,42,15,150,8,0,1,0,45,10,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,107,6,14,21,0,1,21,1,32,5,22,0,5,11,14,21,0,1,21,1,12,0,46,6,0,35,0,8,7,0,46,6,22,0,6,11,14,21,0,6,21,1,29,21,0,1,0,15,5,0,42,0,16,8,0,40,21,1,74,0,7,0,46,10,8,7,5,22,0,7,11,14,31,0,1,0,22,5,0,17,5,0,30,0,46,0,24,21,0,5,0,30,0,8,0,41,31,0,6,8,7,5,0,42,0,16,8,0,40,31,0,7,8,0,46,0,42,0,7,8,10,3,2,0,43,0,20,0,41,0,45,8,8,7,5,31,0,4,21,0,5,6,0,29,31,0,5,21,1,14,5,6,0,1,0,45,6,25,21,0,2,0,12,5,22,0,3,11,14,31,0,3,0,7,21,0,1,0,12,5,6,22,0,4,11,14,21,0,4,0,13,0,45,6,0,5,0,108,6,14,0,45,0,20,5,22,0,5,11,14,21,0,1,0,14,5,22,0,6,11,0,27,21,0,4,6,0,24,0,35,0,8,7,0,46,10,0,17,9,0,42,0,15,8,5,22,0,7,11,14,31,0,6,0,28,31,0,4,6,0,34,15,151,7,21,0,2,0,14,16,6,14,21,0,7,0,30,0,20,0,30,0,6,7,21,0,5,10,0,33,0,29,7,31,0,1,0,15,5,10,21,1,74,31,0,2,19,7,5,0,1,0,45,6,25,31,0,1,0,31,0,6,7,5,0,3,5,0,27,0,41,0,32,0,46,7,0,7,0,22,10,0,18,0,45,10,8,5,0,31,0,6,7,5,0,1,0,45,6,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,109,6,14,21,0,1,0,30,21,1,7,7,5,0,35,0,8,7,0,46,6,0,5,0,110,6,14,31,0,1,21,1,37,5,25,21,0,1,0,12,5,0,12,0,46,6,21,1,156,5,14,21,0,1,0,30,21,1,7,7,5,0,35,0,8,7,0,46,6,21,1,156,5,14,21,0,1,0,22,5,0,33,0,7,7,5,0,46,0,17,0,39,0,30,0,6,0,41,0,46,8,21,0,1,0,42,0,16,8,0,40,0,13,8,0,24,10,7,8,0,35,0,8,7,0,46,10,3,2,0,43,0,13,0,41,0,45,8,8,5,21,1,157,5,14,31,0,1,0,3,5,25,21,0,1,0,22,5,22,0,3,11,14,21,0,1,21,1,12,0,46,6,22,0,4,11,0,35,0,8,7,0,46,6,22,0,5,11,14,31,0,3,0,17,5,0,30,0,8,0,41,21,0,5,8,0,42,0,6,8,7,31,0,5,0,17,5,0,15,31,0,4,6,6,0,33,0,29,7,31,0,1,0,15,5,6,25,21,0,1,21,1,4,5,21,1,157,5,14,31,0,1,0,12,5,0,20,0,45,6,25,21,0,1,0,12,5,0,33,0,7,7,0,46,6,22,0,3,11,14,21,0,1,0,14,5,22,0,4,11,14,21,0,4,0,16,21,0,3,6,22,0,5,11,14,31,0,4,0,27,31,0,3,6,22,0,6,11,14,21,0,6,0,35,0,8,7,0,46,6,0,17,5,0,15,31,0,6,6,0,30,0,8,0,41,21,0,5,8,0,42,0,6,8,7,31,0,5,0,17,5,6,0,33,0,29,7,31,0,1,0,15,5,6,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,111,6,14,21,0,1,0,22,5,0,6,0,46,6,0,17,5,0,30,31,0,1,0,42,0,29,0,41,0,17,8,8,7,5,0,1,0,41,0,16,0,41,0,45,8,8,5,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,112,6,14,21,0,1,0,22,5,22,0,3,11,14,21,0,3,0,6,0,46,6,0,17,5,0,30,31,0,1,0,42,0,29,0,41,15,152,8,8,7,5,0,1,0,41,0,16,0,41,21,0,3,8,8,5,25,31,0,1,22,0,3,22,0,4,4,2,11,14,15,153,22,0,5,11,14,0,24,0,39,31,0,3,8,0,25,0,6,21,0,5,0,13,0,41,0,45,8,7,9,31,0,5,0,21,7,3,2,0,43,0,13,0,41,0,45,8,8,10,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,117,6,14,31,0,2,21,1,47,21,0,1,0,22,5,6,0,33,0,16,7,31,0,1,6,25,21,0,2,0,12,16,0,12,0,46,17,0,5,0,118,17,14,21,0,1,0,14,5,22,0,3,11,0,22,0,40,0,12,8,21,0,2,17,0,5,0,119,6,14,0,45,22,0,4,11,14,31,0,3,0,34,15,154,7,31,0,2,17,14,31,0,1,0,15,5,0,16,21,0,4,6,25,31,0,2,0,30,31,0,1,0,42,21,1,51,8,7,5,25,31,0,1,22,0,2,22,0,3,22,0,4,22,0,5,22,0,6,22,0,7,4,6,11,14,0,121,0,26,31,0,2,6,0,26,0,120,6,22,0,8,11,14,0,122,0,26,21,0,8,6,22,0,9,11,14,0,123,0,26,21,0,8,6,22,0,10,11,14,0,124,0,26,21,0,8,6,22,0,11,11,14,0,125,0,26,31,0,8,6,22,0,12,11,14,0,24,0,30,31,0,5,0,30,0,0,0,12,0,46,10,7,0,15,9,0,35,0,8,7,0,46,10,3,2,0,43,21,1,4,8,7,0,15,9,0,35,0,8,7,0,46,10,0,5,31,0,12,10,3,2,0,16,31,0,4,6,22,0,13,11,14,15,155,15,156,3,2,0,43,0,25,0,39,31,0,3,8,8,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,126,6,14,21,0,1,0,22,5,0,20,0,45,6,0,5,0,127,6,14,31,0,1,0,29,0,45,0,20,5,6,25,31,0,2,0,30,21,1,48,0,41,31,0,1,0,22,5,8,7,5,25,31,0,2,0,30,21,1,48,0,41,31,0,1,8,7,5,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,130,6,14,21,0,1,0,22,5,22,0,3,11,14,31,0,1,0,29,21,0,3,0,17,5,0,30,0,7,0,41,0,46,0,7,31,0,3,6,8,7,5,6,25,21,0,2,21,1,6,16,0,5,0,131,17,14,21,0,1,0,12,0,45,6,0,6,22,0,1,13,14,21,0,1,0,9,21,0,2,17,0,11,5,0,8,21,0,1,6,0,7,31,0,2,17,22,0,3,11,14,31,0,1,0,20,21,0,3,6,0,5,0,132,6,14,31,0,3,25,21,0,2,21,1,4,0,44,0,15,0,16,0,45,10,8,5,22,0,2,12,14,21,0,2,21,1,7,5,0,5,0,134,6,14,31,0,2,22,0,3,11,22,0,4,11,14,31,0,1,0,8,21,0,3,6,0,17,5,0,31,0,33,15,157,0,44,15,158,8,7,7,5,25,21,0,2,0,22,5,0,12,31,0,1,6,0,5,0,135,6,14,21,0,2,0,30,0,12,0,41,0,11,0,39,0,19,8,8,7,5,0,35,0,8,7,0,46,6,0,5,0,134,6,14,31,0,2,21,1,37,5,25,0,32,0,45,7,0,5,0,136,10,25,31,0,1,21,1,1,5,22,0,3,11,14,21,0,3,0,16,0,45,6,0,45,0,42,0,13,8,0,32,31,0,3,7,0,46,0,24,0,28,0,46,10,0,30,31,0,0,7,9,0,35,0,8,7,0,46,10,3,2,0,43,21,1,148,8,9,3,2,0,43,0,13,0,41,0,47,8,8,5,25,31,0,1,15,159,31,0,2,10,25,0,33,31,0,1,7,25,15,160,0,24,3,2,0,35,31,0,1,7,5,25,31,0,1,31,0,2,5,25,31,0,1,15,161,0,25,21,1,64,9,0,44,15,162,8,3,2,0,43,0,25,0,39,0,0,8,0,13,0,51,10,8,31,0,2,6,25,31,0,1,21,1,8,0,40,21,0,4,21,1,67,21,1,23,21,0,4,7,0,37,0,30,31,0,4,7,8,8,8,31,0,2,17,25,31,0,1,21,1,8,0,40,21,0,4,21,1,67,0,30,31,0,4,7,8,8,31,0,2,17,25,31,0,1,25,0,45,31,0,1,3,2,0,43,31,0,2,8,25,21,0,1,21,0,5,0,40,31,0,4,8,31,0,2,17,22,0,6,11,14,21,1,57,0,35,0,24,21,1,4,9,0,44,0,15,0,42,0,16,8,8,7,21,0,1,10,0,45,0,14,0,39,0,24,0,35,0,8,7,0,46,10,0,17,9,0,42,0,15,8,8,0,1,0,70,10,3,2,0,43,21,1,4,8,9,22,0,7,11,14,15,163,22,0,8,11,14,21,1,1,0,45,0,16,0,41,0,47,8,0,12,0,32,21,0,8,7,10,3,2,0,43,0,16,0,41,0,45,8,0,12,0,53,10,8,9,22,0,9,11,14,21,0,5,21,1,87,21,0,9,6,22,0,10,11,14,0,45,21,0,8,0,50,8,22,0,11,11,14,31,0,11,31,0,10,5,0,45,21,1,70,3,2,21,1,1,0,29,0,46,0,51,3,2,10,3,2,0,43,31,0,9,8,5,22,0,12,22,0,13,4,2,11,14,0,24,0,39,21,1,71,8,0,7,0,46,10,0,44,15,164,8,22,0,14,11,14,0,24,0,36,15,165,8,22,0,15,11,14,31,0,13,31,0,14,21,0,6,6,0,32,31,0,1,7,0,42,31,0,15,8,0,32,31,0,5,7,21,1,154,9,15,166,9,3,2,0,43,21,1,71,8,5,25,31,0,1,0,34,21,1,74,7,31,0,2,17,0,15,5,0,35,0,8,7,0,46,6,25,21,0,2,0,16,0,46,17,31,0,1,3,2,0,43,31,0,2,0,16,0,45,17,8,25,31,0,1,0,15,5,0,30,21,1,75,7,5,0,35,0,18,7,0,45,6,0,6,0,46,6,25,0,1,0,42,0,24,0,36,0,32,3,0,7,0,15,21,1,77,0,40,31,0,2,8,10,8,8,21,1,79,0,24,0,36,0,25,8,31,0,1,10,3,2,0,43,0,15,0,39,0,22,8,0,20,0,45,10,8,25,21,0,1,0,15,5,0,16,0,45,6,21,1,77,5,22,0,3,11,14,21,0,1,0,15,5,0,30,21,1,77,0,45,21,1,13,3,2,0,43,0,22,0,40,0,12,8,8,21,0,3,10,0,5,0,141,10,7,5,14,21,0,3,0,35,0,8,7,0,46,6,0,17,5,0,15,31,0,3,6,0,30,0,33,0,16,7,7,31,0,1,0,30,21,1,10,7,5,6,25,21,0,1,0,12,0,40,0,18,8,21,0,2,17,0,33,0,7,7,0,46,6,22,0,3,11,14,21,0,1,21,1,77,0,40,21,1,11,8,21,0,2,17,22,0,4,11,14,21,0,4,0,30,0,22,0,13,21,0,3,10,7,5,0,35,0,8,7,0,46,6,0,5,0,142,6,14,21,0,4,0,30,0,28,0,41,0,32,21,0,3,7,0,7,0,22,10,8,7,5,22,0,5,11,14,21,0,5,0,35,21,1,13,7,5,0,5,0,143,6,14,31,0,4,0,30,0,46,0,24,0,16,0,45,10,3,2,0,43,0,22,0,20,31,0,3,10,8,7,5,0,35,0,6,7,0,45,6,22,0,6,11,14,31,0,1,0,15,0,40,0,26,8,31,0,2,17,0,15,31,0,5,0,16,0,45,6,0,26,31,0,6,3,1,6,6,25,0,50,22,0,3,11,22,0,4,11,14,3,0,22,0,5,11,14,21,0,1,22,0,6,11,14,31,0,1,0,30,0,22,7,5,21,1,37,5,0,30,15,167,7,5,25,21,0,1,0,15,5,22,0,3,11,0,22,5,22,0,4,11,14,21,0,3,0,30,21,1,77,7,5,22,0,5,11,14,21,0,5,0,16,0,45,6,0,22,5,22,0,6,11,14,21,0,1,0,12,5,22,0,7,11,14,21,0,5,0,30,0,22,0,12,21,0,6,10,7,5,0,35,0,8,7,0,46,6,0,5,0,144,6,14,21,0,7,0,23,21,0,6,6,0,5,0,145,6,14,15,168,22,0,8,11,14,31,0,1,21,1,77,5,22,0,9,11,14,0,46,22,0,10,11,14,0,45,0,20,5,22,0,11,11,22,0,12,11,14,21,0,7,0,17,5,0,34,15,169,7,21,0,9,21,1,57,5,21,0,8,0,8,7,0,46,6,21,1,57,5,6,14,0,34,15,170,31,0,3,0,30,0,15,7,5,7,7,22,0,13,11,14,21,0,11,21,0,13,15,171,3,2,0,43,31,0,6,0,20,21,0,7,6,8,21,0,12,6,25,21,0,2,0,22,5,22,0,3,11,14,21,0,1,0,22,5,22,0,4,11,14,21,0,3,0,23,21,0,4,6,0,5,0,148,6,14,31,0,1,0,34,0,8,0,41,31,0,2,0,42,0,16,8,8,0,24,3,2,0,43,0,25,0,13,31,0,3,10,8,7,31,0,4,0,17,5,6,25,31,0,1,31,0,2,9,25,31,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,31,0,5,31,0,4,31,0,3,10,25,31,0,1,22,0,3,22,0,4,4,2,11,14,31,0,4,31,0,3,7,25,31,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,31,0,5,31,0,4,31,0,3,8,25,0,32,21,1,70,7,22,0,0,11,14,15,172,22,0,1,11,14,0,0,0,23,0,51,10,0,44,21,0,1,21,1,71,7,8,22,0,2,11,14,15,173,22,0,3,11,14,15,174,22,0,4,11,14,15,175,22,0,5,11,14,0,150,0,24,0,151,0,45,21,0,3,0,46,8,21,0,4,9,0,152,0,46,21,0,3,0,45,8,21,0,4,9,0,153,0,46,21,0,3,0,46,8,31,0,4,9,0,154,0,46,21,0,3,0,46,8,31,0,5,9,0,155,0,46,31,0,3,0,46,8,3,12,21,1,19,5,22,0,6,22,0,7,4,2,11,14,15,176,3,1,0,26,31,0,7,21,1,38,0,41,0,30,0,22,7,8,21,0,6,6,6,21,1,16,31,0,6,21,1,83,5,8,22,0,8,11,14,15,177,22,0,9,11,14,21,1,86,0,32,21,0,0,7,3,2,0,43,0,16,0,41,0,51,0,42,0,23,8,8,0,12,0,32,21,0,0,7,10,8,22,0,10,11,14,15,178,0,42,0,24,0,16,0,46,10,31,0,9,0,25,10,21,0,2,9,0,32,21,0,0,7,15,179,31,0,10,0,16,0,41,0,45,8,10,0,24,0,16,0,46,10,31,0,2,9,3,4,0,43,0,24,0,16,0,45,10,0,39,0,51,0,24,0,47,3,2,0,43,0,13,0,41,0,47,8,8,3,2,0,43,0,13,0,41,0,45,8,8,8,8,8,25,21,0,1,0,7,0,46,6,22,0,2,11,14,0,156,0,157,3,2,0,16,21,0,1,6,22,0,3,11,14,0,19,0,42,0,12,8,0,7,0,46,10,0,12,0,41,0,45,8,0,7,0,46,10,3,2,0,16,21,0,1,6,22,0,4,11,14,15,180,15,181,3,2,0,16,31,0,1,6,22,0,5,11,14,0,158,0,26,31,0,3,6,0,26,0,120,6,22,0,6,11,14,0,159,0,26,21,0,6,6,22,0,7,11,14,0,160,0,26,31,0,6,6,22,0,8,11,14,21,1,8,0,42,0,24,0,36,15,182,15,183,3,2,0,43,0,25,0,39,21,1,4,8,8,8,8,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,161,6,14,21,0,1,21,1,12,0,46,6,22,0,3,11,14,21,0,2,0,12,0,40,0,7,8,21,0,1,17,15,184,21,0,2,17,14,21,0,3,0,35,0,8,7,31,0,1,15,185,0,37,0,46,8,31,0,2,17,6,25,21,0,1,21,1,91,21,0,2,17,22,0,3,11,14,21,0,1,0,15,5,22,0,4,11,0,22,5,22,0,5,11,0,11,31,0,3,6,22,0,6,11,14,31,0,4,0,27,21,0,6,0,7,21,0,5,6,6,0,26,31,0,6,0,33,21,1,10,0,42,0,27,8,7,0,37,21,0,1,0,42,31,0,5,0,20,0,45,6,0,44,15,186,8,8,8,31,0,2,17,6,0,15,31,0,1,21,1,77,5,6,25,21,0,1,21,1,91,21,0,2,17,22,0,3,11,14,21,0,1,0,15,5,22,0,4,11,0,22,5,22,0,5,11,0,11,21,0,3,6,22,0,6,11,14,21,0,6,0,33,21,1,10,0,42,0,28,0,41,0,7,0,41,31,0,3,8,8,8,7,0,37,21,0,1,0,42,31,0,5,0,20,0,45,6,0,44,15,187,8,8,8,31,0,2,17,0,26,31,0,4,0,28,31,0,6,6,6,0,15,31,0,1,21,1,77,5,6,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,166,6,14,21,0,1,0,30,21,1,94,7,5,14,21,0,1,3,0,0,42,0,15,8,0,30,0,17,7,0,35,0,30,0,26,0,41,21,1,11,8,7,7,3,0,0,20,5,10,3,2,0,43,0,24,0,35,0,8,7,0,46,10,0,20,0,45,10,8,5,0,30,0,1,0,41,0,45,8,7,5,0,1,31,0,1,0,30,0,45,7,5,6,25,21,0,2,0,12,5,0,23,0,46,6,0,5,0,167,6,14,21,0,2,21,1,10,5,22,0,2,12,0,22,5,22,0,3,11,14,31,0,1,21,0,3,0,20,0,45,6,0,44,0,24,0,36,15,188,8,8,31,0,2,6,25,21,0,1,21,1,77,5,0,27,21,0,2,17,22,0,3,11,14,21,0,1,21,1,12,31,0,2,17,22,0,4,11,0,35,0,8,7,0,46,6,22,0,5,11,14,21,0,1,0,15,5,22,0,6,11,14,21,0,5,0,17,5,0,15,31,0,4,6,22,0,7,11,14,31,0,1,15,189,0,36,0,32,21,0,3,0,35,0,8,7,0,46,6,0,17,5,0,30,15,190,7,5,0,15,31,0,3,6,7,8,5,25,31,0,4,22,0,5,11,14,15,191,22,0,6,11,14,15,192,22,0,7,11,14,31,0,1,21,0,5,0,20,9,15,193,15,194,31,0,7,3,4,0,43,0,12,0,20,0,45,10,0,40,0,6,0,41,0,8,0,41,0,47,8,8,8,8,31,0,2,17,21,1,81,5,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,172,6,14,31,0,4,22,0,5,11,14,15,195,22,0,6,11,14,31,0,1,31,0,6,15,196,3,2,0,43,0,46,0,37,0,22,0,20,0,45,10,8,8,31,0,2,17,25,21,0,2,0,12,5,0,23,0,46,6,0,5,0,175,6,14,31,0,2,21,1,10,5,22,0,3,11,14,21,0,3,0,30,21,1,7,0,7,0,46,10,7,5,22,0,4,11,0,35,0,6,7,0,45,6,22,0,5,11,14,21,0,5,0,23,0,46,6,0,5,0,176,6,14,31,0,1,21,1,10,5,22,0,6,11,0,22,5,22,0,7,11,14,21,0,3,0,24,0,35,0,8,7,0,46,10,15,197,3,2,0,43,31,0,5,8,5,22,0,8,11,14,21,0,6,21,0,7,0,12,21,0,8,6,0,7,0,46,6,0,44,0,24,0,36,15,198,8,8,5,0,15,21,0,3,6,25,21,0,1,0,30,21,1,6,7,5,0,35,0,8,7,0,46,6,0,5,0,181,6,14,21,0,1,0,30,0,13,0,41,0,50,8,7,5,0,35,0,8,7,0,46,6,0,5,0,182,6,14,0,3,22,0,5,11,14,21,0,1,0,25,0,37,0,45,8,0,44,0,24,15,199,0,22,0,42,0,33,0,7,7,8,10,8,31,0,2,17,22,0,1,12,14,21,0,1,0,4,31,0,1,21,0,5,5,22,0,6,11,6,22,0,7,11,14,0,45,22,0,8,11,14,31,0,6,0,30,15,200,0,33,0,29,7,31,0,7,10,31,0,4,9,7,5,25,21,0,1,0,12,5,0,12,0,46,6,0,5,0,183,6,14,21,1,102,0,24,7,22,0,3,11,14,31,0,1,21,0,3,0,1,0,45,0,39,0,17,8,10,0,30,21,1,8,0,39,15,201,8,7,0,35,0,30,0,30,0,26,7,7,7,3,0,0,20,5,0,20,5,10,0,1,0,30,0,45,7,3,0,0,42,0,15,8,0,1,0,24,10,9,10,3,2,0,43,21,1,76,0,20,0,46,10,8,5,25,21,0,2,0,12,5,22,0,3,11,14,21,0,1,0,12,5,0,13,21,0,3,6,0,5,0,184,6,14,21,0,1,21,1,77,5,22,0,4,11,0,27,21,0,3,6,0,34,0,7,7,21,0,2,21,1,77,16,6,22,0,5,11,14,21,0,5,0,45,0,16,0,41,0,45,8,0,12,0,46,10,3,2,0,43,21,0,3,0,12,0,46,6,8,5,22,0,6,11,14,31,0,5,0,30,0,12,0,41,0,45,8,7,0,35,0,8,7,0,46,10,0,46,3,2,0,43,21,0,6,8,5,0,5,0,185,6,14,21,0,1,0,42,0,24,0,36,0,25,0,39,21,0,1,0,15,5,15,202,15,203,3,2,0,43,31,0,1,0,12,5,0,12,21,0,3,6,8,5,8,8,8,22,0,7,11,14,31,0,2,0,15,5,21,1,102,21,0,7,7,31,0,6,6,0,1,3,0,31,0,7,5,6,25,21,0,1,21,1,4,5,0,5,0,186,6,14,31,0,1,21,1,104,21,1,135,3,2,0,43,21,0,2,21,1,76,16,0,13,0,47,17,8,31,0,2,6,25,21,0,1,0,12,5,0,23,0,46,6,0,5,0,187,6,14,21,0,1,21,1,10,5,22,0,1,12,14,21,0,1,0,22,5,0,51,0,42,0,13,8,0,8,0,13,0,41,0,46,8,10,5,0,5,0,188,6,14,21,0,1,0,30,21,1,6,7,5,0,35,0,8,7,0,46,6,0,5,0,189,6,14,31,0,2,0,30,0,25,0,8,0,33,0,9,0,39,0,11,8,7,10,0,33,0,7,7,0,46,10,0,6,0,7,10,0,41,21,0,1,0,22,5,8,7,5,0,33,0,29,7,31,0,1,6,25,31,0,1,21,1,106,0,46,0,45,3,2,0,37,0,47,3,1,8,10,25,21,0,1,21,1,107,31,0,5,7,21,0,2,17,22,0,6,11,0,30,0,21,0,41,0,45,8,7,5,22,0,7,11,14,21,0,4,22,0,8,11,14,15,204,15,205,3,2,0,16,31,0,4,0,46,21,1,64,3,2,0,43,0,0,0,13,0,51,10,8,5,6,22,0,9,11,14,15,206,22,0,10,11,14,15,207,22,0,11,11,14,15,208,22,0,12,11,14,31,0,1,21,0,12,31,0,6,7,31,0,2,17,25,0,24,0,25,3,2,0,43,0,20,8,22,0,6,11,14,21,0,1,21,1,107,31,0,5,7,0,34,0,7,0,42,21,0,6,8,31,0,6,0,7,0,25,10,3,2,0,43,0,24,0,13,0,45,10,8,7,0,12,0,40,21,1,11,8,10,21,0,2,17,22,0,7,11,14,0,24,0,20,9,21,1,97,0,24,0,20,0,36,0,30,0,20,7,8,9,3,3,0,43,0,12,0,42,0,23,8,0,6,0,46,10,0,8,0,45,0,42,0,21,8,10,8,22,0,8,11,14,31,0,1,21,0,8,21,0,7,0,16,0,41,0,22,0,33,0,7,7,0,46,10,8,5,6,21,1,68,31,0,4,7,31,0,2,31,0,8,31,0,7,0,16,0,45,6,17,17,21,1,81,5,25,31,0,4,22,0,6,11,14,0,45,15,209,0,37,0,32,15,210,7,8,21,0,2,17,22,0,7,11,14,21,0,1,31,0,5,31,0,2,17,22,0,8,11,14,15,211,22,0,9,11,14,31,0,1,31,0,9,15,212,3,2,0,43,21,0,8,21,1,7,5,8,5,25,21,0,2,21,1,111,21,0,1,6,0,11,5,0,8,31,0,2,6,0,7,31,0,1,6,25,21,0,2,21,1,123,5,21,1,123,0,46,6,0,5,0,193,6,14,21,0,2,0,30,21,1,123,7,5,22,0,3,11,0,35,21,1,126,7,0,45,6,22,0,4,11,14,21,0,1,21,1,123,5,21,1,125,21,0,4,6,0,5,0,194,6,14,21,0,1,21,1,77,5,0,27,21,0,4,6,21,1,127,21,0,2,0,30,21,1,77,7,16,21,1,85,16,6,22,0,5,11,14,21,0,5,21,0,3,21,1,123,0,46,6,21,1,132,21,0,3,6,0,42,21,1,125,8,21,1,117,21,1,125,0,41,0,45,8,10,5,0,35,21,1,117,7,0,46,6,0,5,0,185,6,14,0,45,3,1,0,26,31,0,5,6,0,29,21,0,3,0,31,21,1,126,7,5,21,1,133,0,45,6,6,21,1,115,31,0,3,6,22,0,6,11,14,21,0,2,0,30,21,1,129,7,5,22,0,2,12,0,30,21,1,122,7,5,0,33,21,1,127,7,21,0,6,6,22,0,7,11,14,0,32,21,0,1,7,21,1,101,31,0,1,21,1,12,31,0,4,6,0,42,0,26,8,10,22,0,8,11,14,21,0,7,0,35,21,1,119,7,0,46,6,3,1,21,0,8,5,0,42,0,29,8,22,0,9,11,14,21,0,2,0,16,0,41,0,45,8,0,40,21,1,102,21,0,9,7,8,0,34,21,1,102,0,24,7,7,21,1,119,31,0,7,21,1,131,5,21,1,133,0,46,6,0,31,21,1,119,7,5,21,1,131,5,10,0,35,0,30,0,30,21,1,126,7,7,7,9,0,30,31,0,9,7,9,3,2,0,43,0,24,0,39,21,1,122,8,21,1,122,0,46,10,8,31,0,6,6,0,1,31,0,2,0,30,0,45,7,16,31,0,8,16,6,25,21,0,2,21,1,123,5,0,33,21,1,127,7,0,46,6,22,0,3,11,14,21,0,3,21,1,125,0,45,6,0,5,0,195,6,14,21,0,1,21,1,123,5,21,1,125,31,0,3,6,0,5,0,196,6,14,31,0,1,21,1,139,0,41,21,0,2,8,21,1,129,0,39,21,1,42,8,21,1,129,21,1,77,10,0,42,0,34,21,1,11,7,8,9,0,40,21,1,139,8,31,0,2,6,25,21,0,2,21,1,123,5,21,1,124,0,46,6,0,5,0,197,6,14,31,0,1,21,1,77,5,21,1,122,0,40,21,1,125,8,21,0,2,6,0,5,0,198,6,14,31,0,2,21,1,129,5,0,30,21,1,7,7,5,0,35,21,1,117,7,0,46,6,0,5,0,199,6,25,21,0,1,21,1,77,5,21,1,138,21,0,2,6,0,30,0,35,21,1,115,7,7,5,21,1,130,5,0,30,0,32,31,0,1,7,21,1,52,0,29,0,41,31,0,2,8,10,7,5,25,21,0,1,21,1,142,21,0,2,6,14,21,0,2,21,1,129,5,22,0,2,12,14,21,0,2,21,1,140,5,21,1,128,5,0,35,21,1,126,7,0,45,6,21,1,127,21,0,1,21,1,123,5,6,22,0,3,11,14,21,0,3,21,1,120,21,0,2,6,0,35,21,1,117,7,0,46,6,0,5,0,200,6,14,31,0,1,21,1,143,31,0,3,21,1,130,5,0,24,21,1,132,0,33,21,1,140,0,39,21,1,128,8,7,10,21,0,2,17,0,26,31,0,2,17,6,25,21,0,1,21,1,142,21,0,2,6,14,21,0,2,21,1,129,5,22,0,2,12,14,21,0,1,21,1,123,5,22,0,3,11,14,21,0,2,21,0,3,0,42,21,1,120,8,21,1,117,21,1,140,10,5,0,35,21,1,117,7,0,46,6,21,1,156,5,14,31,0,1,21,1,143,31,0,3,21,1,130,5,0,24,21,1,132,0,33,21,1,140,0,39,21,1,128,8,7,10,21,0,2,17,0,26,31,0,2,17,21,1,14,5,6,25,31,0,1,21,1,154,5,25,31,0,5,14,31,0,1,31,0,4,31,0,2,17,25,21,0,1,21,1,154,5,0,24,15,213,3,2,0,43,0,45,0,24,21,1,1,0,39,21,1,148,8,9,3,2,0,43,21,1,77,0,41,0,32,21,1,158,7,8,21,1,117,21,1,77,10,8,8,31,0,1,6,25,31,0,1,21,1,1,5,25,31,0,1,21,1,154,5,25,21,0,2,0,42,21,0,1,8,0,37,31,0,2,31,0,1,9,8,25,31,0,1,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,150,21,1,128,9,22,0,7,11,14,31,0,6,15,214,15,215,0,32,21,1,158,7,3,2,0,43,0,24,0,39,21,0,7,8,8,3,2,0,43,0,25,0,39,31,0,7,8,8,31,0,4,6,25,31,0,1,21,1,1,5,25,31,0,1,21,1,163,5,25,31,0,1,21,1,167,5,25,31,0,2,31,0,1,5,25,31,0,1,21,1,170,5,25,31,0,2,0,35,31,0,1,7,5,25,0,24,21,1,76,0,39,21,1,157,8,31,0,1,10,0,25,0,24,10,25,21,0,1,31,0,4,21,0,2,17,22,0,6,11,14,21,0,6,31,0,5,31,0,2,17,21,1,76,31,0,1,6,21,1,157,5,14,31,0,6,25,21,0,1,21,1,76,5,21,1,123,0,47,6,21,1,156,5,14,21,0,1,0,30,21,1,123,7,5,21,1,123,0,46,6,0,35,21,1,117,7,0,46,6,21,1,157,5,14,21,0,1,21,1,155,5,22,0,3,11,14,21,0,3,0,30,21,1,7,7,5,0,35,21,1,117,7,0,46,6,21,1,157,5,14,21,0,1,0,30,21,1,133,0,41,0,50,8,7,5,21,1,155,5,21,1,121,21,0,3,6,0,35,21,1,117,7,0,46,6,21,1,157,5,14,21,0,3,0,3,5,22,0,4,11,14,0,46,21,1,125,21,0,4,6,0,35,21,1,117,7,0,46,6,21,1,157,5,14,31,0,4,21,1,128,5,21,1,132,5,22,0,5,11,14,21,0,5,0,30,0,50,7,5,21,1,155,31,0,1,0,30,21,1,122,7,5,21,1,132,5,6,0,29,31,0,5,21,1,155,31,0,3,6,21,1,32,5,6,25,21,0,2,21,1,123,5,21,1,123,0,46,6,21,1,156,5,14,21,0,2,0,30,21,1,7,7,5,0,35,21,1,117,7,0,46,6,21,1,156,5,14,31,0,2,21,1,138,5,22,0,3,11,14,21,0,1,0,30,21,1,122,7,0,40,21,1,76,8,21,0,3,6,21,1,157,5,14,31,0,1,21,1,155,0,40,0,29,0,41,21,1,32,8,8,31,0,3,6,25,21,0,1,21,1,4,5,21,1,157,5,14,21,0,1,21,1,123,5,21,1,123,0,45,6,21,1,157,5,14,31,0,1,21,1,129,5,0,16,0,45,6,25,21,0,2,21,1,123,0,40,21,1,127,8,21,0,1,6,22,0,3,11,14,21,0,3,0,46,0,42,21,1,125,8,21,1,117,21,1,125,0,41,0,45,8,10,5,21,1,157,5,14,21,0,2,0,46,21,1,122,3,2,0,43,21,0,3,8,5,22,0,4,11,14,21,0,1,21,1,122,5,21,1,125,21,0,4,6,21,1,157,5,14,21,0,1,21,1,162,21,1,136,0,41,21,0,4,8,3,2,0,43,31,0,3,8,5,21,1,76,31,0,2,6,21,1,157,5,14,31,0,1,21,1,137,31,0,4,6,25,21,0,1,21,1,122,5,21,1,123,0,47,6,21,1,157,5,14,21,0,1,21,1,162,5,21,1,76,31,0,2,17,21,1,157,5,14,31,0,1,21,1,162,0,46,6,25,21,0,1,21,1,122,5,21,1,123,0,46,6,21,1,157,5,14,31,0,1,21,1,162,5,25,0,24,0,39,21,1,76,8,21,1,120,0,45,10,21,1,157,9,0,25,21,1,166,21,1,146,31,0,1,7,7,10,25,0,24,0,39,21,1,76,8,21,1,120,0,45,10,21,1,157,9,0,25,0,45,0,39,21,1,156,8,0,37,21,1,165,21,1,146,31,0,1,7,7,8,10,25,0,24,0,39,21,1,123,8,21,1,120,0,45,10,21,1,157,9,0,25,21,1,174,21,1,146,31,0,1,7,0,24,0,41,21,1,4,0,39,21,1,157,8,8,9,7,10,25,21,1,166,21,1,146,31,0,1,7,7,25,0,24,0,39,21,1,123,8,21,1,120,0,45,10,21,1,157,9,0,25,0,24,21,0,1,21,1,133,10,0,37,21,1,122,21,1,120,0,46,10,0,44,21,1,137,0,41,0,46,8,31,0,1,21,1,137,0,41,0,50,8,10,21,1,155,21,1,162,10,8,8,10,25,31,0,1,0,32,15,216,7,3,2,0,43,21,1,123,0,41,0,32,21,1,147,7,8,8,25,21,1,146,31,0,2,7,22,0,3,11,14,21,0,3,0,41,21,0,1,8,0,37,31,0,3,8,21,1,146,31,0,1,7,9,25,31,0,1,21,1,169,21,1,146,31,0,2,7,8,25,21,0,1,21,1,168,21,0,2,8,21,1,159,31,0,1,21,1,127,5,21,1,168,31,0,2,8,8,25,31,0,1,21,1,127,5,21,1,168,31,0,2,8,25,21,1,146,31,0,1,7,0,37,21,1,146,31,0,2,7,8,25,21,1,146,31,0,1,7,0,41,31,0,2,8,25,31,0,1,0,37,21,1,158,8,25,21,1,146,21,0,2,7,21,1,146,21,0,1,7,9,0,37,31,0,1,0,32,0,45,0,39,21,1,156,8,7,15,217,3,2,0,43,0,24,0,39,21,1,150,8,8,31,0,2,17,8,25,21,0,1,15,218,31,0,5,21,1,175,31,0,1,31,0,4,21,0,2,17,6,7,31,0,2,17,25,21,1,120,21,1,139,21,0,1,10,21,1,175,9,22,1,2,12,14,31,0,1,21,1,3,3,2,25,31,0,1,21,2,2,5,25,31,0,1,21,2,2,5,25,21,0,1,0,14,0,40,21,2,13,8,21,0,2,17,0,5,0,99,6,14,31,0,1,0,34,31,0,4,7,31,0,2,17,25,21,0,2,0,14,5,22,0,5,11,14,21,0,2,0,12,5,22,0,6,11,14,21,0,1,0,14,5,22,0,7,11,14,21,0,7,0,27,21,0,6,6,21,2,13,31,0,5,6,0,5,0,100,6,14,21,0,7,0,28,31,0,6,6,0,35,0,8,7,0,46,6,22,0,8,11,14,31,0,2,0,15,5,22,0,9,11,0,22,5,22,0,10,11,14,31,0,1,0,15,5,22,0,11,11,14,0,45,0,21,21,0,10,6,0,8,21,0,8,6,0,17,0,40,0,30,0,32,31,0,11,7,0,16,0,6,0,41,0,8,0,41,31,0,8,8,8,10,31,0,4,31,0,9,0,42,0,16,8,10,7,8,31,0,10,6,0,15,31,0,7,6,25,31,0,1,21,1,2,31,0,2,17,25,31,0,1,0,30,21,1,2,0,41,31,0,2,8,7,5,25,31,0,2,0,30,31,0,1,0,42,21,1,2,8,7,5,25,31,0,1,0,30,21,1,2,7,5,25,31,0,1,21,1,2,31,0,2,17,25,31,0,1,21,2,23,21,1,2,7,31,0,2,17,25,21,2,11,0,16,0,23,10,21,2,11,21,2,26,10,22,0,3,11,14,21,0,1,0,22,0,40,21,0,3,8,21,0,2,17,22,0,4,22,0,5,4,2,11,14,31,0,1,15,219,0,40,15,220,8,31,0,2,17,22,0,6,11,14,21,0,4,31,0,6,3,2,25,31,0,2,22,0,3,11,14,31,0,1,22,0,4,11,14,15,221,21,1,6,3,2,0,43,0,12,0,41,21,1,7,8,8,22,0,5,11,14,0,45,21,0,5,5,25,31,0,1,0,12,0,41,0,45,8,0,44,31,0,2,8,9,25,0,33,31,0,1,7,25,21,1,3,0,16,21,0,1,6,31,0,4,5,0,46,0,13,31,0,1,6,0,44,15,222,31,0,5,7,8,31,0,2,17,25,21,0,2,0,12,5,0,33,0,7,7,0,46,6,22,0,3,11,0,7,21,0,1,0,12,5,6,22,0,4,11,14,31,0,3,0,13,0,45,6,0,5,0,102,6,14,21,0,4,0,13,0,45,6,0,5,0,103,6,14,21,0,2,21,2,12,0,46,6,22,0,5,11,14,21,0,2,0,22,5,22,0,6,11,14,21,0,1,21,2,8,5,22,0,1,12,14,21,0,1,21,2,12,21,0,4,6,22,0,7,11,14,21,0,1,0,14,5,0,27,31,0,4,6,22,0,8,11,0,35,0,8,7,0,46,6,22,0,9,11,14,31,0,1,0,15,0,40,15,223,15,224,3,2,0,43,21,0,6,0,20,0,45,6,8,8,31,0,2,6,0,15,31,0,8,6,25,21,0,1,0,12,5,0,13,0,46,6,0,5,0,101,6,14,21,0,1,0,22,5,22,0,3,11,14,31,0,1,21,0,3,0,39,0,17,8,15,225,3,2,0,43,21,0,3,0,13,0,47,6,8,5,25,21,0,2,0,12,5,0,33,0,7,7,0,46,6,22,0,3,11,14,21,0,3,0,13,0,45,6,0,5,0,105,6,14,21,0,1,0,12,5,0,13,21,0,3,6,0,5,0,106,6,14,21,0,2,0,22,5,22,0,4,11,14,21,0,2,21,2,12,0,46,6,22,0,5,11,0,35,0,8,7,0,46,6,22,0,6,11,14,21,0,1,0,12,5,0,33,0,7,7,31,0,3,6,22,0,7,11,14,21,0,1,0,14,5,0,27,21,0,7,6,22,0,8,11,0,35,0,8,7,0,46,6,22,0,9,11,14,31,0,1,15,226,15,227,3,2,0,43,0,45,21,2,12,0,41,31,0,7,8,21,2,13,31,0,5,10,3,2,0,43,21,0,6,0,8,21,0,4,6,0,20,0,45,6,22,0,10,11,8,8,31,0,2,6,0,15,31,0,8,6,25,0,17,0,42,0,30,0,6,7,0,41,0,30,21,0,1,0,42,0,8,8,7,8,8,22,0,3,11,14,21,0,2,21,0,3,22,1,5,13,14,31,0,2,0,7,31,0,1,6,0,6,0,46,6,0,18,0,45,6,31,0,3,22,1,7,13,25,21,0,1,0,7,21,1,3,6,0,17,5,0,30,0,6,0,41,31,0,1,8,7,5,25,31,0,1,0,5,21,1,4,10,0,25,0,24,10,25,21,1,4,0,8,21,0,1,6,0,6,31,0,2,21,2,47,31,0,1,17,17,22,1,4,12,25,21,0,2,0,12,5,0,23,0,46,6,0,5,21,1,10,6,14,21,0,2,21,1,13,5,14,21,0,2,0,15,5,22,0,2,12,0,22,5,22,0,3,11,14,21,0,1,0,12,5,0,13,21,0,3,6,0,5,21,1,11,6,14,0,45,0,20,5,22,0,4,11,14,21,0,1,0,14,5,22,0,5,11,0,27,21,0,3,6,22,0,6,11,0,34,15,228,7,31,0,2,6,14,31,0,1,0,15,31,0,5,0,28,31,0,3,6,0,26,31,0,6,0,35,0,8,7,0,46,6,3,1,6,6,0,29,21,0,4,6,25,21,0,1,0,12,5,0,13,0,46,6,0,5,21,1,9,6,14,31,0,1,21,1,6,31,0,2,17,25,31,0,2,0,12,21,1,4,6,25,21,1,3,0,6,22,1,4,13,14,31,0,1,0,6,0,46,6,25,31,0,1,0,37,31,0,2,8,25,31,0,1,0,1,0,45,10,25,31,0,1,0,1,31,0,2,19,25,21,0,2,0,36,31,0,1,21,2,66,31,0,2,17,8,25,31,0,4,22,0,6,11,14,31,0,1,22,0,7,22,0,8,22,0,9,4,3,11,14,31,0,5,21,2,4,0,21,31,0,8,10,0,44,15,229,0,39,21,1,7,8,8,5,31,0,7,31,0,2,17,22,0,10,11,14,31,0,10,31,0,9,0,44,15,230,8,5,25,0,46,22,0,3,11,14,0,45,15,231,0,35,0,18,7,0,45,10,0,6,0,46,10,3,2,0,43,21,2,4,8,22,0,4,11,14,21,0,1,21,0,4,5,22,0,5,11,14,31,0,2,21,2,11,0,40,21,2,11,8,0,32,21,2,70,7,0,15,0,40,21,2,11,8,3,2,0,43,21,2,72,8,15,232,3,3,0,43,31,0,5,0,11,0,47,6,8,31,0,1,6,25,21,0,2,22,0,3,22,0,4,4,2,11,14,15,233,0,41,31,0,2,8,22,0,5,11,14,15,234,22,0,6,11,14,15,235,0,41,0,45,8,22,0,7,11,14,31,0,1,0,32,21,0,4,7,0,16,0,45,10,31,0,7,3,2,0,43,21,1,12,0,39,21,2,4,8,8,5,25,21,1,6,31,0,1,5,25,31,0,1,0,12,0,41,21,1,4,8,0,7,0,46,10,0,44,15,236,8,5,14,21,1,5,0,16,0,46,0,6,21,1,3,6,22,1,3,12,6,25,31,0,2,22,0,5,11,14,31,0,4,22,0,6,11,14,31,0,1,0,30,15,237,7,5,25,31,0,2,22,0,3,11,14,21,1,9,0,16,21,0,1,6,22,0,4,11,14,21,1,5,0,30,0,16,0,41,31,0,1,8,7,5,22,0,5,11,14,21,0,4,0,17,5,0,30,0,8,0,41,21,0,3,8,7,5,0,33,0,29,7,21,0,5,6,22,0,6,11,14,31,0,3,0,17,5,0,30,0,25,7,21,0,6,6,0,30,0,24,7,21,1,10,0,17,5,6,0,15,5,21,2,13,31,0,5,6,0,5,0,146,6,14,21,0,6,21,2,37,5,22,0,7,11,14,21,0,6,21,1,8,0,6,7,0,45,6,0,29,21,0,7,6,0,34,0,7,7,21,0,7,0,22,5,0,17,5,6,22,0,8,11,14,31,0,8,0,30,0,24,7,21,1,12,6,0,34,0,6,7,31,0,6,0,29,21,0,7,6,0,30,0,8,7,21,1,12,6,6,22,1,12,12,14,31,0,7,0,30,0,6,0,41,21,0,4,0,42,0,8,8,8,7,21,1,11,6,22,1,11,12,14,31,0,4,0,8,22,1,10,13,25,31,0,4,0,16,31,0,1,6,0,16,31,0,2,17,25,21,1,5,0,16,0,45,6,0,28,21,1,7,6,22,0,3,11,14,21,1,5,0,30,0,28,0,41,21,1,7,8,21,2,13,21,0,3,10,7,5,0,35,0,8,7,0,46,6,0,5,0,147,6,14,21,0,3,0,35,0,8,7,5,22,0,4,11,0,17,5,0,15,31,0,3,6,22,0,5,11,14,21,0,5,0,30,0,25,7,31,0,1,6,21,1,13,31,0,5,0,30,0,6,0,41,0,8,0,41,31,0,4,8,8,7,31,0,2,17,6,25,0,32,21,2,70,7,31,0,1,3,2,0,43,31,0,4,0,7,0,46,10,0,40,0,8,0,37,0,24,8,8,8,25,21,0,1,15,238,31,0,1,31,0,4,31,0,5,3,3,7,3,2,0,43,0,24,31,0,2,9,8,25,21,1,0,0,37,31,0,1,8,25,31,0,1,0,37,21,1,0,8,25,21,1,1,31,0,2,7,22,0,3,11,14,31,0,1,21,0,3,15,239,15,240,3,3,0,43,0,32,0,51,7,0,7,0,0,10,8,5,25,21,0,1,21,1,8,5,22,0,3,11,14,31,0,1,31,0,3,31,0,2,17,25,31,0,1,21,2,1,5,25,31,0,1,0,28,0,46,6,0,30,21,2,87,0,41,0,32,31,0,2,7,8,7,5,25,21,0,1,0,19,5,22,0,5,11,0,20,0,41,21,0,2,8,0,44,31,0,4,8,5,14,31,0,5,0,17,5,0,30,21,0,1,0,6,21,0,2,17,0,42,0,6,8,7,0,30,0,45,0,42,0,20,8,0,44,0,49,8,7,9,0,30,0,13,0,41,31,0,2,8,0,44,0,49,8,7,3,2,0,43,31,0,1,0,20,0,45,6,8,5,25,31,0,1,14,0,6,0,18,0,45,10,0,17,9,0,7,0,18,0,45,10,0,17,9,0,30,0,6,7,0,24,0,39,0,20,8,10,3,2,0,43,0,20,0,41,0,45,8,8,25,21,0,2,21,2,6,5,0,5,21,1,8,6,14,21,0,2,0,13,0,45,6,22,0,3,11,14,21,0,1,0,22,5,0,6,0,18,0,45,10,0,11,3,2,0,43,21,0,3,8,21,0,2,6,22,0,4,11,14,15,241,21,0,1,7,22,0,5,11,14,0,46,22,0,6,11,14,0,24,22,0,7,11,14,21,0,1,0,12,0,20,0,46,10,0,44,15,242,0,41,21,0,2,8,8,5,14,31,0,1,0,15,5,0,28,0,27,3,2,0,43,21,0,3,0,12,21,1,2,6,8,21,0,6,0,8,31,0,4,6,6,21,1,2,0,44,0,24,0,45,0,42,0,21,8,0,44,15,243,8,0,22,0,7,31,0,2,0,39,0,19,8,10,10,8,5,21,0,7,5,25,21,0,2,0,12,5,0,23,0,46,6,0,5,21,1,7,6,14,21,0,2,0,15,5,22,0,2,12,14,21,0,2,0,30,21,2,6,7,5,0,35,0,8,7,0,46,6,0,5,21,1,8,6,14,21,0,2,0,22,5,22,0,3,11,14,21,0,1,21,2,77,5,0,22,0,42,0,21,8,0,44,15,244,8,21,0,3,6,22,0,4,11,14,15,245,22,0,5,11,14,0,45,0,20,5,22,0,6,11,14,0,46,22,0,7,11,14,15,246,22,0,8,11,14,0,45,22,0,9,11,14,31,0,2,0,34,15,247,21,1,5,15,248,7,31,0,8,0,25,10,3,2,0,43,21,1,4,8,7,21,0,4,0,27,21,0,3,6,6,22,0,10,11,14,31,0,1,0,15,0,41,21,0,4,8,15,249,3,2,0,43,21,0,6,0,12,5,0,20,0,45,6,8,5,25,21,0,1,0,13,0,45,6,0,5,0,162,6,14,21,0,1,0,23,0,46,6,0,5,0,163,6,14,31,0,2,21,2,77,5,0,28,31,0,1,0,7,0,46,6,6,21,2,13,21,1,3,6,0,5,0,164,6,25,31,0,2,0,46,0,22,3,2,0,43,0,24,0,12,0,40,0,13,8,31,0,1,10,8,5,25,31,0,2,0,17,5,0,30,31,0,1,0,1,5,7,5,25,31,0,2,0,17,5,0,30,31,0,1,0,1,5,7,5,25,21,0,1,0,12,5,0,13,21,1,3,6,0,5,0,168,6,14,21,0,2,0,30,21,2,7,7,5,0,35,0,8,7,5,0,5,0,169,6,14,21,0,1,21,2,77,5,22,0,3,11,14,21,0,2,0,34,0,7,0,6,0,46,10,7,21,0,3,0,27,21,1,3,6,6,22,0,4,11,14,21,0,4,0,30,0,13,0,41,0,45,8,7,5,0,35,0,8,7,5,0,5,0,170,6,14,21,0,3,0,28,21,1,3,6,22,0,5,11,0,35,0,8,7,0,46,6,22,0,6,11,14,15,250,22,0,7,11,14,31,0,1,15,251,31,0,7,3,2,0,43,0,25,0,35,0,8,7,21,0,4,0,35,0,8,7,21,0,6,6,10,0,20,0,45,10,8,31,0,2,6,25,21,1,7,0,30,0,32,31,0,1,7,7,5,25,21,1,7,0,30,0,6,0,41,31,0,1,0,8,21,1,5,6,8,7,5,0,33,0,29,7,21,1,6,6,25,21,2,97,0,41,0,46,8,0,40,21,0,1,21,2,67,0,34,21,0,1,7,0,37,0,30,31,0,1,7,8,8,8,25,21,0,2,0,22,0,40,0,12,8,21,0,1,17,0,5,0,171,17,14,31,0,1,21,1,6,21,1,5,7,31,0,2,17,25,31,0,1,21,1,6,21,1,5,0,41,31,0,2,8,7,5,25,31,0,2,21,1,6,31,0,1,0,42,21,1,5,8,7,5,25,21,0,1,21,2,77,5,0,28,0,46,6,22,0,3,11,14,15,252,22,0,4,11,14,21,1,5,0,32,31,0,1,7,0,15,31,0,4,10,21,2,21,0,42,21,2,101,8,3,2,0,43,0,24,0,39,21,2,18,8,0,7,0,46,10,8,31,0,3,6,25,31,0,1,21,2,97,0,46,6,0,35,21,1,5,7,31,0,2,17,25,31,0,1,0,34,0,24,0,46,3,2,0,43,0,25,8,7,21,1,4,6,0,35,0,8,7,0,46,6,22,0,3,11,14,21,0,3,0,20,0,45,6,0,5,0,177,6,14,21,1,4,0,22,5,0,17,5,0,34,0,8,7,21,1,4,6,0,35,0,6,7,0,45,6,22,0,4,11,14,21,1,3,0,16,31,0,4,6,21,2,100,5,22,0,5,11,14,0,54,0,20,21,0,5,6,0,5,0,178,6,14,0,12,0,41,0,11,8,0,5,0,179,10,0,25,0,24,10,22,0,6,11,14,21,0,3,0,9,21,1,7,6,31,0,6,0,11,0,18,3,3,0,43,21,0,5,0,11,0,47,6,8,5,22,0,7,11,14,21,1,3,0,34,0,24,21,0,7,3,2,0,43,0,25,8,7,21,1,4,6,22,1,3,12,14,31,0,7,0,8,31,0,3,6,31,0,5,0,12,0,51,6,0,44,0,20,0,41,21,1,7,8,0,44,15,253,8,8,5,25,21,1,7,0,20,0,45,6,0,5,0,180,6,14,31,0,1,0,27,15,254,0,41,0,47,0,42,0,9,8,8,0,24,0,27,0,22,0,42,0,7,8,10,0,26,0,24,10,0,25,10,3,2,0,43,0,22,0,42,0,21,8,8,21,1,8,6,25,0,24,21,1,5,21,0,1,0,16,21,0,2,17,10,22,1,5,12,14,31,0,1,0,27,31,0,2,17,25,21,0,1,0,17,5,0,30,0,6,0,41,21,1,8,8,7,5,0,24,31,0,1,0,6,22,1,8,13,6,25,21,0,1,0,15,5,21,1,3,5,0,30,31,0,1,21,2,77,5,21,2,95,5,0,15,5,0,42,0,29,8,7,5,25,21,1,4,0,28,21,1,3,6,22,0,3,11,0,35,0,8,7,0,46,6,22,0,4,11,14,21,0,4,0,17,5,0,15,31,0,3,6,0,42,0,30,0,6,0,41,0,8,0,41,31,0,4,8,8,7,8,0,33,0,29,7,31,0,1,10,25,31,0,1,0,42,0,29,8,25,31,0,2,14,31,0,1,25,31,0,2,0,36,31,0,1,8,25,21,0,1,21,1,9,0,30,31,0,1,7,8,25,21,0,1,21,1,9,21,2,23,31,0,1,7,8,25,0,45,22,0,2,11,14,15,255,21,0,1,7,22,0,3,11,14,31,0,1,0,34,15,256,7,21,1,7,6,0,22,0,21,0,47,10,0,44,0,26,0,41,0,45,3,1,8,8,5,22,0,4,22,0,5,4,2,11,14,21,1,8,15,257,15,258,15,259,3,4,0,43,31,0,5,0,42,0,6,0,41,31,0,4,0,8,0,47,10,8,8,8,25,15,260,0,32,31,0,2,7,7,25,0,25,31,0,1,9,25,0,45,22,0,3,11,22,0,4,11,14,21,1,8,21,2,24,15,261,7,5,14,31,0,1,3,1,22,0,5,11,14,15,262,0,41,21,1,7,8,22,0,6,11,14,21,0,3,21,0,6,21,1,6,6,22,0,7,11,14,21,0,4,0,7,5,21,0,5,31,0,6,0,41,21,2,154,8,3,2,0,43,0,20,0,41,0,45,8,8,21,1,6,6,22,0,8,11,14,21,1,8,21,2,24,0,32,31,0,7,31,0,8,3,2,7,0,16,0,45,0,42,0,20,8,10,0,16,0,19,10,7,5,25,21,1,8,0,17,5,0,35,0,24,0,39,21,1,6,21,1,7,5,8,7,31,0,1,6,25,21,0,1,21,2,159,31,0,2,8,21,2,147,31,0,1,8,25,0,24,21,2,146,21,1,5,7,31,0,2,19,15,263,21,2,146,31,0,1,7,8,25,0,24,15,264,21,1,5,7,31,0,1,10,21,2,146,31,0,2,7,9,25,31,0,2,21,2,147,31,0,1,8,25,0,24,15,265,31,0,2,7,31,0,1,10,25,31,0,1,25,21,1,5,0,17,5,0,30,0,7,0,41,21,0,1,0,22,5,0,6,0,50,6,8,7,5,0,33,0,29,7,31,0,1,6,25,21,0,1,0,34,0,12,7,21,0,2,6,0,31,0,8,7,5,0,35,0,6,7,0,45,6,22,0,3,11,14,21,0,2,0,29,0,41,0,17,8,21,0,3,6,0,35,0,8,7,0,46,6,22,0,4,11,14,31,0,3,0,21,0,41,21,1,5,8,0,44,0,32,31,0,2,31,0,1,3,2,7,0,30,0,16,7,0,20,10,0,39,15,266,8,8,5,14,21,0,4,25,21,1,4,0,6,0,41,21,0,1,8,0,40,21,2,5,8,21,1,3,6,0,12,0,41,0,45,8,0,44,31,0,1,0,6,0,46,6,0,39,21,1,5,8,8,5,25,0,32,0,45,7,0,13,31,0,4,21,3,29,31,0,1,7,31,0,2,17,10,25,31,0,1,14,21,1,9,0,17,5,0,30,0,45,7,5,25,21,0,2,21,3,9,5,22,0,3,11,14,31,0,2,0,42,0,16,8,22,0,4,11,14,21,1,5,0,35,0,8,7,0,46,6,22,0,5,11,14,21,0,5,0,12,0,46,6,0,8,0,47,6,0,6,21,0,3,6,21,0,5,21,2,4,15,267,8,5,22,0,6,11,14,0,46,0,7,21,1,6,6,0,17,5,0,30,0,8,0,41,21,0,5,8,0,39,0,6,0,41,21,0,5,8,0,42,31,0,6,8,8,7,5,0,35,0,8,7,0,46,6,0,5,0,104,6,14,31,0,3,0,24,0,44,0,8,0,41,21,0,1,0,39,21,3,9,8,8,8,5,22,0,7,11,14,31,0,1,0,42,0,16,8,22,0,8,11,14,21,1,7,21,3,28,21,1,5,6,22,0,9,22,0,10,4,2,11,14,21,0,10,0,12,0,46,6,0,8,0,47,6,0,6,31,0,7,6,31,0,10,21,2,4,15,268,8,31,0,9,6,22,0,11,11,14,31,0,11,0,41,0,8,0,41,31,0,5,8,8,22,0,12,11,14,15,269,22,0,13,11,14,21,1,9,0,17,5,0,30,0,8,0,41,21,1,7,0,35,0,8,7,0,46,6,8,31,0,13,9,7,5,25,21,0,1,21,3,12,0,46,6,0,35,0,8,7,0,46,6,22,0,3,11,0,12,0,46,6,22,0,4,11,14,21,0,1,0,15,5,22,0,1,12,14,0,46,22,0,5,11,14,0,45,22,0,6,11,14,21,0,1,0,30,0,0,0,39,15,270,8,7,5,14,21,0,4,0,8,0,47,6,0,6,21,0,5,6,22,0,7,11,14,15,271,22,0,8,11,14,0,45,22,0,9,11,22,0,10,11,14,15,272,22,0,11,11,14,21,0,1,0,45,0,45,15,273,3,2,0,43,0,30,0,12,0,41,0,11,8,7,0,35,0,8,7,0,46,10,8,3,2,0,43,21,1,3,0,12,21,0,6,6,0,8,21,0,7,0,12,0,51,6,6,8,5,22,0,12,11,14,31,0,1,31,0,8,31,0,11,3,2,0,43,31,0,12,8,5,25,31,0,1,14,21,1,9,0,17,5,0,30,21,1,10,0,8,21,1,4,6,0,21,0,41,21,1,4,8,0,24,3,2,0,43,21,2,2,8,5,7,5,25,21,1,6,21,3,29,21,0,1,0,15,5,0,42,0,16,8,0,42,21,3,74,0,7,0,46,10,0,41,21,0,2,0,15,16,0,42,0,16,8,8,8,7,5,22,0,3,11,14,31,0,1,15,274,15,275,3,2,0,43,0,15,0,39,0,22,8,0,20,0,52,10,0,40,0,8,8,8,31,0,2,6,25,21,0,1,21,2,7,31,0,2,17,0,30,0,6,7,21,1,4,0,30,31,0,1,0,42,0,8,8,7,5,6,22,1,4,12,25,31,0,1,3,1,3,0,0,26,3,2,0,43,0,25,21,3,4,9,8,21,1,6,6,22,1,6,12,25,31,0,1,21,2,8,21,1,6,8,25,31,0,1,0,15,5,22,0,3,11,0,22,5,0,6,0,50,6,0,6,22,1,3,13,14,31,0,3,0,30,21,1,4,7,5,25,15,276,22,0,3,11,14,21,3,11,21,0,3,15,277,3,2,0,43,0,24,0,39,0,35,21,3,72,7,8,8,3,2,0,43,0,24,0,16,0,45,10,21,3,4,9,8,22,0,4,11,14,31,0,2,31,0,1,3,2,21,0,4,0,45,6,22,0,5,11,14,21,1,3,0,17,5,0,30,15,278,7,5,22,0,6,11,14,31,0,6,0,30,0,16,0,41,0,46,8,7,21,3,11,0,30,0,16,0,41,0,45,8,7,10,0,32,21,3,70,7,3,2,0,43,31,0,3,0,12,21,0,5,6,8,5,25,21,0,1,21,3,8,5,22,0,1,12,14,21,0,1,0,14,5,22,0,3,11,14,31,0,1,0,15,5,22,0,4,11,0,22,5,22,0,5,11,14,21,1,3,0,30,0,21,0,41,0,70,8,7,5,0,35,21,3,117,7,0,46,6,0,5,0,139,6,14,21,1,3,0,3,21,0,5,6,22,0,6,11,14,21,1,3,0,4,21,0,6,6,0,33,0,29,7,22,1,4,13,14,0,45,22,0,7,11,14,0,32,21,1,4,7,0,16,15,279,10,22,0,8,11,14,21,3,74,0,5,0,140,10,22,0,9,11,14,31,0,6,0,34,31,0,4,0,42,0,16,8,21,0,8,0,24,15,280,31,0,8,10,3,3,0,43,0,11,0,41,0,47,8,8,7,31,0,5,0,17,5,6,0,15,31,0,3,6,25,21,0,1,0,34,0,25,0,12,21,0,1,31,0,5,5,10,0,44,31,0,4,8,7,31,0,1,0,22,5,0,17,5,6,25,31,0,1,0,15,0,39,0,32,21,2,12,7,0,16,21,0,2,19,21,1,6,31,0,0,0,41,21,0,2,0,6,0,46,17,8,8,8,0,15,0,14,10,21,1,5,3,2,0,43,21,2,12,0,22,5,0,23,31,0,2,17,8,5,25,31,0,1,22,2,4,12,0,33,0,16,7,21,2,6,6,22,2,5,12,14,0,50,22,2,3,12,25,21,1,5,22,0,3,11,14,31,0,1,21,1,6,22,1,5,13,14,31,0,3,25,31,0,4,31,0,1,31,0,2,17,25,31,0,1,22,0,3,11,14,15,281,25,31,0,1,22,0,3,11,14,15,282,25,31,0,1,0,17,5,0,30,0,32,31,0,4,0,1,5,7,7,5,25,21,0,1,21,3,12,0,46,6,22,0,3,11,0,35,0,8,7,22,1,6,13,14,0,15,0,41,31,0,3,0,26,31,0,2,0,19,16,21,2,2,0,7,0,46,6,0,44,0,24,0,7,31,0,1,0,22,5,10,0,18,0,45,10,8,16,3,1,6,8,22,1,7,12,25,21,1,6,0,8,31,0,2,17,21,1,5,5,0,33,0,26,7,0,26,3,2,0,43,21,1,3,8,31,0,1,6,25,21,0,1,0,26,31,0,1,0,22,5,0,7,31,0,2,17,0,17,0,39,0,30,0,46,7,8,5,6,25,31,0,1,0,30,0,6,7,31,0,2,0,30,31,0,4,0,42,0,8,8,7,16,17,25,21,0,1,0,46,0,42,0,12,8,0,7,0,46,10,0,44,21,1,5,21,0,2,7,0,41,0,17,8,8,21,1,7,6,21,1,5,31,0,2,0,8,21,1,7,17,7,22,1,6,13,14,0,46,22,1,7,12,14,31,0,1,0,22,5,25,21,0,2,0,8,22,1,7,13,14,31,0,2,25,31,0,1,14,0,46,22,1,9,12,25,21,1,4,0,28,21,1,3,6,22,0,3,11,0,26,22,1,10,13,14,31,0,3,0,35,0,8,7,21,1,7,6,0,12,0,41,0,46,8,0,7,0,46,10,0,44,15,283,8,5,14,21,0,1,0,15,5,0,42,0,16,8,22,0,4,11,14,21,1,9,0,24,0,44,15,284,8,31,0,1,6,14,21,1,6,0,15,21,1,10,6,0,30,21,0,4,7,5,25,0,46,0,7,21,2,3,6,15,285,5,0,33,0,29,7,21,1,3,6,0,26,21,1,6,3,1,6,0,31,0,8,7,5,21,3,57,5,22,0,3,11,14,31,0,2,0,24,0,34,15,286,7,31,0,3,10,0,35,0,30,0,6,7,7,9,0,40,0,30,0,6,7,8,21,1,4,6,0,46,0,42,0,12,8,0,7,0,46,10,0,44,0,33,0,17,0,15,21,1,5,10,0,42,0,30,0,6,7,8,7,8,21,1,6,6,0,33,0,29,7,31,0,1,0,15,5,6,25,21,1,5,0,26,31,0,2,17,0,26,21,1,4,6,0,33,0,15,7,3,0,6,25,21,0,2,0,22,5,0,20,0,45,6,0,5,0,173,6,14,21,0,2,0,22,5,0,17,5,0,34,0,20,0,41,0,45,8,0,42,0,8,8,7,31,0,2,6,25,21,2,7,0,7,31,0,1,6,0,17,5,0,30,21,2,6,0,1,5,7,5,0,26,22,2,6,13,14,21,2,7,25,31,0,1,0,22,0,42,0,21,8,0,44,0,33,0,26,7,0,42,31,0,0,8,8,31,0,2,17,25,31,0,1,14,0,45,22,1,3,12,14,21,2,12,21,2,7,0,34,0,6,7,31,0,4,6,7,22,1,2,12,25,21,3,76,0,20,21,0,1,0,18,0,45,6,10,0,45,3,2,0,16,31,0,1,0,13,0,45,6,0,8,31,0,2,17,6,25,0,45,21,1,3,5,14,31,0,1,21,2,10,0,24,21,1,2,31,0,2,19,7,5,25,0,45,21,1,3,5,14,31,0,2,21,2,10,31,0,1,0,42,21,1,2,8,7,5,25,0,45,21,1,3,5,14,31,0,1,21,2,11,21,1,2,7,31,0,2,17,25,0,25,31,0,1,31,0,4,10,25,21,0,1,21,3,6,5,0,5,0,190,6,14,21,0,1,0,11,22,1,4,13,14,31,0,1,0,18,22,1,3,13,25,31,0,1,0,17,5,0,26,21,1,5,6,0,31,31,0,2,7,5,25,31,0,1,31,0,5,5,31,0,4,31,0,2,17,25,31,0,1,21,3,164,5,25,31,0,1,21,3,164,5,25,31,0,1,0,35,21,2,3,7,5,22,0,3,22,0,4,4,2,11,14,31,0,3,22,2,4,12,14,31,0,4,0,8,22,1,4,13,25,21,1,4,0,40,31,0,1,8,25,21,1,8,0,42,31,0,1,0,41,21,1,4,8,8,25,31,0,1,0,42,21,1,12,8,22,0,3,11,14,0,46,0,42,0,21,8,0,44,15,287,8,22,0,4,11,14,0,50,21,0,4,0,46,0,6,21,2,6,6,6,0,6,0,46,6,25,21,0,1,0,13,0,46,6,0,8,22,1,5,13,14,31,0,1,0,6,22,1,6,13,25,21,1,7,21,1,3,21,3,4,15,288,31,0,1,7,8,5,22,0,3,11,14,0,24,21,2,3,3,2,0,43,0,13,0,41,21,2,3,8,8,22,0,4,11,14,0,45,0,12,21,2,3,6,0,6,21,2,3,6,0,2,0,47,6,0,18,5,22,0,5,11,0,17,5,0,30,0,24,0,6,0,46,10,0,7,31,0,5,10,0,10,0,47,10,7,5,0,35,15,289,7,21,2,3,0,17,5,6,25,31,0,1,0,30,21,1,10,0,42,0,7,8,0,7,0,41,21,1,9,8,3,2,0,16,21,3,2,6,7,5,0,4,0,41,0,3,8,5,25,21,2,3,0,8,0,47,6,0,13,21,0,1,0,35,0,11,7,5,22,1,10,12,0,7,31,0,1,0,35,0,18,7,5,22,1,9,12,6,6,25,31,0,1,14,21,2,4,21,2,9,3,2,0,30,0,17,0,30,0,8,0,41,21,2,6,8,7,9,7,5,22,0,3,22,0,4,4,2,11,14,31,0,4,0,30,15,290,7,5,25,21,0,2,21,4,33,5,21,4,57,5,22,0,3,11,14,31,0,1,21,4,32,31,0,2,0,29,21,0,3,17,6,0,15,5,0,30,0,46,0,42,0,7,8,0,18,0,45,10,7,5,0,33,0,29,7,31,0,3,6,22,0,4,11,14,0,7,0,41,0,46,8,0,8,0,41,21,2,4,0,42,0,7,8,8,0,7,0,25,10,3,2,0,16,21,3,2,6,22,0,5,11,14,21,2,9,0,17,5,0,34,0,8,0,41,21,2,6,8,0,40,21,1,3,8,31,0,5,0,25,10,7,31,0,4,6,25,31,0,0,0,45,3,2,25,31,0,2,22,0,3,11,14,31,0,1,0,30,0,15,7,5,22,0,4,11,0,16,0,45,6,0,22,5,22,0,5,11,14,0,50,22,0,6,11,14,15,291,0,42,21,1,4,8,22,0,7,11,14,15,292,25,31,0,1,21,1,5,5,22,0,3,22,0,4,4,2,11,14,31,0,3,22,1,5,12,14,31,0,4,25,0,46,0,7,31,0,1,0,6,22,1,7,13,6,25,0,46,0,7,21,0,1,6,0,17,5,0,30,0,32,21,2,4,7,0,16,0,6,0,41,31,0,1,0,7,21,1,7,6,8,10,21,1,9,21,0,2,19,7,5,14,31,0,2,25,0,45,0,32,21,1,3,31,0,1,7,7,5,21,2,3,5,25,0,45,0,32,31,0,2,21,1,3,31,0,1,8,7,5,21,2,3,5,25,21,0,1,0,17,5,21,2,5,31,0,1,7,22,2,6,13,25,0,32,31,0,2,0,1,16,7,21,1,4,3,2,0,43,0,13,0,41,0,45,8,8,22,1,4,12,25,21,0,1,0,17,5,0,30,0,7,0,41,31,0,1,8,7,5,25,31,0,1,0,17,5,0,30,0,8,0,41,31,0,2,8,7,5,25,0,47,0,9,21,0,2,17,0,11,5,22,0,3,11,0,6,21,0,1,6,22,0,4,11,21,1,3,5,22,0,5,11,14,31,0,1,31,0,4,3,2,0,16,21,0,5,6,21,1,4,21,0,3,0,8,0,47,6,0,7,31,0,2,17,0,8,31,0,5,6,0,6,31,0,3,6,6,25,31,0,4,0,42,0,16,8,0,40,31,0,1,8,25,31,0,2,22,0,3,11,0,7,5,22,0,4,11,14,0,45,22,0,5,11,22,0,6,11,22,0,7,11,14,0,51,22,0,8,11,14,21,0,1,21,2,4,0,7,0,46,6,0,44,0,30,0,8,0,41,21,2,3,8,7,8,5,0,42,0,16,8,0,40,21,1,3,8,22,0,9,11,14,21,0,9,0,7,0,46,10,0,45,0,46,0,47,3,4,22,0,10,11,14,0,6,15,293,3,2,0,16,21,0,3,0,13,0,52,6,6,22,0,11,11,14,15,294,22,0,12,11,14,15,295,15,296,31,0,12,3,3,0,43,15,297,8,22,0,13,11,14,21,0,1,0,30,31,0,1,0,42,15,298,8,7,5,25,21,1,3,0,30,31,0,1,0,42,21,2,3,8,7,5,21,4,3,5,25,21,1,4,0,30,0,16,0,41,31,0,1,8,7,5,25,0,46,0,6,22,1,6,13,14,21,1,6,21,1,7,0,41,0,32,31,0,0,7,8,0,32,21,1,3,7,3,2,0,43,0,13,0,41,21,1,5,8,8,5,22,0,3,11,14,0,45,31,0,3,5,25,21,0,1,21,1,8,0,7,0,46,6,0,44,21,1,9,0,44,15,299,8,8,0,46,0,7,31,0,1,6,6,25,31,0,2,0,6,21,1,3,6,22,1,4,12,14,31,0,1,0,6,21,1,3,6,22,1,7,12,21,2,4,5,22,1,6,12,0,6,21,1,3,6,21,2,4,5,22,1,5,12,14,21,1,7,0,13,21,4,3,6,22,1,8,12,14,21,1,6,21,1,11,5,14,21,1,7,21,1,13,21,1,4,6,25,21,0,2,0,6,0,46,6,22,1,4,12,0,12,21,1,6,6,0,8,0,47,6,0,6,22,1,8,13,14,31,0,2,25,21,0,1,0,6,0,46,6,22,1,7,12,0,12,21,1,5,6,0,6,22,1,8,13,14,31,0,1,25,31,0,1,21,1,10,0,43,21,1,8,8,31,0,2,17,25,31,0,1,0,16,21,1,7,21,1,13,21,1,4,6,6,25,0,47,22,2,8,12,14,21,2,4,22,2,7,12,14,31,0,1,22,2,4,12,25] + ,[provide[0],provide[1],provide[2],provide[3],provide[4],provide[5],provide[6],provide[7],provide[8],provide[9],provide[10],runtime_0[0],provide[12],provide[13],provide[14],provide[15],provide[16],provide[17],runtime_0[1],runtime_0[2],runtime_0[3],runtime_0[4],runtime_0[5],runtime_0[6],runtime_0[7],runtime_0[8],runtime_0[9],runtime_0[10],runtime_0[11],runtime_0[12],provide[18],provide[19],runtime_0[13],runtime_0[14],runtime_0[15],runtime_0[16],provide[20],provide[21],provide[22],runtime_0[17],runtime_0[18],runtime_0[19],runtime_0[20],runtime_0[21],runtime_0[22],0,1,2,Infinity,-Infinity,-1,3,8,5,4,'∾','+','-','×','÷','⋆','¬','⌊','⌈','∨','∧','≠','=','>','≥','\0','˙','√','<','⊢','⊣','≍','↑','↓','↕','⌽','⍉','/','⊔','˜','¨','⌜','˘','`','∘','○','⌾','⍟','⊘','⊸','⟜',str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!˙˜˘¨⌜⁼´˝`∘○⊸⟜⌾⊘◶⎉⚇⍟⎊%"),str("´: Identity not found"),str("´: 𝕩 must be a list"),str("Mapping: Equal-rank argument shapes don\'t agree"),str("Mapping: Argument shape prefixes don\'t agree"),str("⍋𝕩: 𝕩 must have rank at least 1"),str("⍋ or ⍒: Rank of 𝕨 must be at least 1"),str("⍋ or ⍒: Rank of 𝕩 must be at least cell rank of 𝕨"),str("⍋ or ⍒: 𝕨 must be sorted"),str("p⊐𝕩 or 𝕨∊p: p must have rank at least 1"),str("p⊐n or n∊p: Rank of n must be at least cell rank of p"),str("∊𝕩 or ⊐𝕩: 𝕩 must have rank at least 1"),str("𝕨⍷𝕩: Rank of 𝕨 cannot exceed rank of 𝕩"),str("/𝕩: 𝕩 must have rank 1"),str("/𝕩: 𝕩 must consist of natural numbers"),str("↑𝕩: 𝕩 must have rank at least 1"),str("↓𝕩: 𝕩 must have rank at least 1"),str("𝕨⊑𝕩: Indices in 𝕨 must consist of integers"),str("𝕨⊑𝕩: Index out of range"),str("𝕨⊏𝕩: Indices in 𝕨 must be integers"),str("𝕨⊏𝕩: Indices out of range"),str("𝕨⊑𝕩: 𝕩 must be a list when 𝕨 is a number"),str("𝕨⊑𝕩: Indices in compound 𝕨 must be lists"),str("𝕨⊑𝕩: Index length in 𝕨 must match rank of 𝕩"),str("𝕨"),str("𝕩: "),str("𝕩 must have rank at least 1 for simple 𝕨"),str("Compound 𝕨 must have rank at most 1"),str("Length of compound 𝕨 must be at most rank of 𝕩"),str("𝕨 must be an array of numbers or list of such arrays"),str("⊏𝕩: 𝕩 must have rank at least 1"),str("⊏𝕩: 𝕩 cannot have length 0"),str("⊏"),str("⊑𝕩: 𝕩 can\'t be empty"),str("⌽𝕩: 𝕩 must have rank at least 1"),str("𝕨⌽𝕩: 𝕨 must consist of integers"),str("𝕨⌽𝕩: 𝕨 too large"),str("⌽"),str("𝕨/𝕩: 𝕨 must consist of natural numbers"),str("𝕨/𝕩: Lengths of components of 𝕨 must match 𝕩"),str("𝕨/𝕩: Components of 𝕨 must have rank 0 or 1"),str("/"),str("=≠≡≢"),str("Cannot modify fill with Structural Under"),str("⌾: Incompatible result elements in structural Under"),str(">𝕩: Elements of 𝕩 must have matching shapes"),str("𝕨∾𝕩: Rank of 𝕨 and 𝕩 must differ by at most 1"),str("𝕨∾𝕩: Cell shapes of 𝕨 and 𝕩 must match"),str("∾𝕩: Elements of 𝕩 must all have the same rank"),str("∾𝕩: 𝕩 element rank must be at least argument rank"),str("∾𝕩: 𝕩 element shapes must be compatible"),str("∾𝕩: 𝕩 element trailing shapes must match"),str("∾𝕩: empty 𝕩 fill rank must be at least argument rank"),str("∾𝕩: 𝕩 must be an array"),str("⊢⊣˜∘○⊸⟜⊘◶"),str("=≠≢"),str("<"),str("≍"),str("↕/»«⊔"),str("⥊↑↓⌽⍉⊏⊑"),str("↑"),str("↓"),str("𝕩: 𝕨 must "),str("have rank at most 1"),str("consist of integers"),str("« or »: 𝕩 must have rank at least 1"),str("« or »: 𝕨 must not have higher rank than 𝕩"),str("« or »: Rank of 𝕨 must be at least rank of 𝕩 minus 1"),str("« or »: 𝕨 must share 𝕩\'s major cell shape"),str("↕𝕩: 𝕩 must consist of natural numbers"),str("↕𝕩: 𝕩 must be a number or list"),str("𝕨↕𝕩: 𝕨 must have rank at most 1"),str("𝕨↕𝕩: Length of 𝕨 must be at most rank of 𝕩"),str("𝕨↕𝕩: 𝕨 must consist of natural numbers"),str("𝕨↕𝕩: Window length 𝕨 must be at most axis length plus one"),str("˘: Argument lengths don\'t agree"),str("˝: 𝕩 must have rank at least 1"),str("˝: Identity does not exist"),str("∘⌊⌽↑"),str("𝕨⥊𝕩: 𝕨 must have rank at most 1"),str("𝕨⥊𝕩: 𝕨 must consist of natural numbers"),str("𝕨⥊𝕩: Can\'t compute axis length when rest of shape is empty"),str("𝕨⥊𝕩: 𝕨 must consist of natural numbers or ∘ ⌊ ⌽ ↑"),str("𝕨⥊𝕩: Shape must be exact when reshaping with ∘"),str("𝕨⥊𝕩: Can\'t produce non-empty array from empty 𝕩"),str("⊔: Grouping argument must consist of integers"),str("⊔: Grouping argument values cannot be less than ¯1"),str("⊔𝕩: 𝕩 must be a list"),str("𝕨⊔𝕩: Rank of simple 𝕨 must be at most rank of 𝕩"),str("𝕨⊔𝕩: Lengths of 𝕨 must equal to 𝕩, or one more only in a rank-1 component"),str("𝕨⊔𝕩: 𝕩 must be an array"),str("⎉ or ⚇: 𝔾 result must have rank at most 1"),str("⎉ or ⚇: 𝔾 result must have 1 to 3 elements"),str("⎉ or ⚇: 𝔾 result must consist of integers"),str("⍟: 𝕨𝔾𝕩 must consist of integers"),str("≥: Needs two arguments"),str("≤: Needs two arguments"),str("𝕨⊔𝕩: Compound 𝕨 must be a list"),str("𝕨⊔𝕩: Total rank of 𝕨 must be at most rank of 𝕩"),str("⊒: Rank of 𝕨 must be at least 1"),str("⊒: Rank of 𝕩 must be at least cell rank of 𝕨"),str("𝕨⍉𝕩: 𝕨 must have rank at most 1"),str("𝕨⍉𝕩: Length of 𝕨 must not exceed rank of 𝕩"),str("𝕨⍉𝕩: 𝕨 must consist of natural numbers"),str("𝕨⍉𝕩: Skipped result axis"),str("Cannot currently invert blocks"),str("Cannot invert modifier"),str("⁼: Inverse failed"),str("⁼: Inverse does not exist"),str("⁼: Inverse not found")] + ,[[0,1,0],[0,0,1],[0,0,2],[0,0,3],[0,0,4],[0,0,[[],[5]]],[0,0,6],[1,1,7],[2,1,8],[1,1,9],[0,0,10],[2,1,11],[0,0,12],[1,0,13],[1,1,14],[1,1,15],[0,0,16],[0,0,17],[1,0,18],[0,0,[[],[19]]],[1,1,20],[1,1,21],[1,0,22],[0,0,[[],[23]]],[0,0,24],[0,0,25],[0,0,26],[0,0,27],[0,0,28],[0,0,29],[0,0,30],[0,0,31],[0,0,32],[0,0,[[],[33]]],[0,0,34],[0,0,[[],[35]]],[1,1,36],[0,0,37],[0,0,[[],[38]]],[0,0,[[],[39]]],[0,0,40],[0,0,41],[0,0,[[],[42]]],[0,0,[[],[43]]],[0,1,44],[0,0,45],[0,0,[[],[46]]],[0,0,47],[0,0,48],[0,0,[[],[49]]],[2,1,50],[1,0,51],[1,0,52],[0,0,53],[0,0,[[],[54]]],[2,0,55],[0,0,56],[0,0,[[],[57]]],[0,0,58],[2,1,59],[0,0,60],[0,0,61],[0,0,62],[0,0,63],[0,0,[[],[64]]],[0,0,[[],[65]]],[0,0,66],[0,0,67],[0,0,68],[0,1,69],[1,1,70],[0,0,71],[0,0,72],[0,0,73],[0,0,74],[0,0,[[],[75]]],[0,0,76],[1,0,77],[1,0,78],[0,0,[[],[79]]],[1,0,80],[0,0,81],[0,0,[[],[82]]],[0,0,[[],[83]]],[0,0,[[],[84]]],[1,1,85],[2,0,86],[2,0,87],[2,0,88],[0,0,[[],[89]]],[0,0,[[],[90]]],[0,0,[[],[91]]],[0,0,[[],[92]]],[0,0,[[],[93]]],[0,0,[[],[94]]],[0,0,[[],[95]]],[1,1,96],[2,0,97],[1,1,98],[0,0,99],[0,0,100],[0,0,[[],[101]]],[0,0,102],[0,0,103],[0,0,104],[0,0,105],[0,0,[[],[106]]],[0,0,107],[0,0,[[],[108]]],[0,0,109],[2,0,110],[0,0,111],[0,0,[[],[112]]],[0,0,113],[0,0,[[],[114]]],[0,0,115],[0,0,116],[0,0,117],[0,0,118],[0,0,119],[0,0,120],[0,0,121],[1,1,122],[0,0,[[],[123]]],[0,0,[[],[124]]],[0,0,[[],[125]]],[0,0,[[],[126]]],[0,0,[[],[127]]],[0,0,[[],[128]]],[0,0,129],[0,0,[[],[130]]],[2,0,131],[0,0,132],[0,0,133],[0,0,134],[1,0,135],[1,0,[[],[136]]],[0,0,137],[0,0,[[],[138]]],[0,0,[[],[139]]],[0,0,140],[0,0,141],[0,0,142],[0,0,143],[0,0,[[],[144]]],[0,0,[[],[145]]],[0,0,146],[2,0,147],[0,0,[[],[148]]],[0,0,149],[0,0,[[],[150]]],[0,0,[[],[151]]],[0,0,152],[1,1,153],[0,0,154],[0,0,[[],[155]]],[0,0,156],[0,0,[[],[157]]],[0,0,158],[0,0,[[],[159]]],[0,0,160],[0,0,161],[0,0,[[],[162]]],[2,0,163],[0,0,[[],[164]]],[0,0,[[],[165]]],[0,0,166],[0,0,167],[1,0,[[],[168]]],[0,0,[[],[169]]],[1,0,170],[0,0,171],[1,0,172],[2,0,[[],[173]]],[0,0,174],[0,0,175],[0,0,[[],[176]]],[0,0,177],[0,0,178],[0,0,[[],[179]]],[1,0,[[],[180]]],[1,1,181],[0,0,[[],[182]]],[0,0,[[],[183]]],[0,0,[[],[184]]],[0,0,[[],[185]]],[0,0,[[],[186]]],[0,0,[[],[187]]],[0,0,[[],[188]]],[0,0,189],[0,0,190],[1,1,191],[0,0,192],[0,0,[[],[193]]],[0,0,[[],[194]]],[0,0,195],[0,0,196],[0,0,197],[0,0,198],[0,0,199],[0,0,200],[0,0,201],[0,0,202],[0,0,203],[2,1,204],[2,1,205],[1,1,206],[1,1,207],[1,1,208],[0,0,[[],[209]]],[0,0,210],[0,0,211],[0,0,212],[0,0,[[],[213]]],[0,0,214],[0,0,[[],[215]]],[0,0,[[],[216]]],[0,0,[[],[217]]],[1,1,218],[0,0,219],[0,0,[[],[220]]],[0,0,221],[1,0,222],[0,0,223],[0,0,[[],[224]]],[0,0,225],[0,0,226],[0,0,[[],[227]]],[0,0,228],[0,0,229],[0,0,230],[0,0,231],[0,0,[[],[232]]],[0,0,233],[2,0,234],[0,0,[[],[235]]],[0,0,236],[0,0,237],[1,0,238],[0,0,239],[0,0,240],[1,0,241],[0,0,[[],[242]]],[0,0,243],[0,0,244],[1,0,245],[0,0,[[],[246]]],[0,0,[[],[247]]],[0,0,248],[0,0,249],[0,0,[[],[250]]],[0,0,251],[0,0,[[],[252]]],[0,0,253],[0,0,254],[1,0,255],[0,0,256],[0,0,257],[0,0,[[],[258]]],[0,0,259],[1,0,260],[0,0,261],[0,0,[[],[262]]],[2,0,263],[1,1,264],[1,1,265],[0,0,266],[0,0,267],[0,0,268],[0,0,269],[0,0,270],[0,0,271],[0,0,272],[0,0,273],[0,0,274],[0,0,[[],[275]]],[0,0,276],[0,0,[[],[277]]],[0,0,278],[0,0,279],[0,0,[[],[280]]],[1,1,281],[2,1,282],[0,0,283],[0,0,[[],[284]]],[0,0,285],[0,0,[[],[286]]],[0,0,287],[1,0,288],[0,0,[[],[289]]],[0,0,290],[0,0,291],[0,0,292],[0,0,293],[0,0,[[],[294]]],[0,0,[[],[295]]],[0,0,296],[0,0,297],[0,0,298],[0,0,299]] + ,[[0,184],[4073,3],[4081,3],[4085,3],[4098,3],[4110,3],[4119,3],[4125,2],[4154,3],[4186,2],[4203,4],[4265,5],[4301,3],[4308,5],[4366,4],[4432,3],[4487,3],[4498,4],[4563,9],[4632,5],[4709,5],[4776,4],[4832,8],[5004,8],[5161,3],[5206,3],[5255,3],[5372,6],[5457,3],[5481,7],[5595,3],[5657,4],[5728,6],[5792,3],[5832,5],[5909,3],[5926,14],[6106,3],[6152,3],[6172,3],[6189,4],[6247,4],[6323,5],[6397,3],[6456,0],[6467,4],[6547,3],[6557,3],[6564,3],[6578,3],[6586,3],[6624,5],[6661,5],[6688,3],[6692,3],[6706,16],[7001,3],[7026,3],[7051,3],[7078,3],[7137,4],[7237,7],[7434,7],[7480,14],[7704,5],[7783,3],[7791,6],[7818,5],[7839,6],[7866,11],[8199,9],[8356,4],[8432,7],[8544,7],[8661,3],[8769,4],[8831,8],[8943,8],[9017,7],[9079,9],[9237,9],[9385,4],[9496,8],[9710,3],[9754,3],[9891,2],[9912,13],[10025,9],[10207,10],[10280,3],[10306,10],[10714,4],[10819,3],[10893,3],[10944,4],[11071,4],[11187,2],[11195,6],[11210,2],[11269,3],[11277,3],[11285,3],[11305,8],[11380,3],[11388,3],[11396,3],[11404,3],[11412,3],[11420,3],[11431,3],[11452,7],[11493,6],[11712,4],[11812,3],[11855,5],[11993,3],[12040,3],[12066,3],[12099,3],[12143,3],[12191,3],[12203,3],[12276,2],[12302,4],[12338,3],[12353,3],[12382,3],[12397,3],[12415,3],[12429,3],[12439,3],[12491,6],[12519,3],[12547,3],[12555,3],[12563,5],[12598,12],[12771,3],[12782,3],[12799,3],[12816,3],[12827,3],[12838,3],[12853,7],[12926,6],[12972,3],[12990,3],[12997,6],[13032,10],[13209,4],[13265,11],[13466,4],[13533,3],[13558,2],[13573,3],[13600,7],[13741,3],[13770,3],[13780,3],[13799,3],[13809,3],[13818,3],[13828,3],[13845,11],[13918,6],[14021,8],[14099,3],[14107,3],[14149,7],[14175,9],[14421,5],[14437,6],[14559,5],[14592,6],[14621,3],[14631,3],[14641,4],[14680,4],[14703,3],[14711,3],[14736,6],[14832,2],[14882,8],[15063,11],[15268,3],[15327,3],[15354,3],[15371,3],[15388,8],[15570,3],[15584,3],[15615,2],[15649,3],[15684,3],[15702,3],[15720,5],[15791,3],[15811,8],[16041,3],[16109,3],[16139,3],[16170,3],[16204,5],[16271,3],[16280,3],[16288,3],[16298,2],[16312,2],[16327,6],[16421,3],[16431,3],[16438,9],[16572,3],[16598,3],[16616,3],[16640,3],[16661,3],[16672,3],[16685,2],[16689,3],[16725,5],[16827,3],[16874,5],[16897,3],[16914,14],[17198,13],[17395,3],[17438,4],[17521,3],[17557,3],[17586,3],[17597,4],[17633,7],[17770,10],[17960,6],[17995,3],[18060,3],[18088,4],[18111,5],[18122,4],[18133,4],[18144,5],[18164,4],[18239,3],[18272,3],[18302,5],[18327,3],[18393,3],[18407,3],[18418,5],[18517,4],[18646,3],[18670,3],[18716,3],[18749,3],[18778,5],[18810,3],[18846,3],[18871,3],[18896,3],[18918,5],[18928,3],[18961,3],[18981,6],[18996,2],[19004,2],[19012,5],[19050,3],[19060,3],[19076,5],[19127,3],[19152,6],[19261,3],[19301,3],[19342,5],[19392,6],[19529,3],[19537,8],[19594,5],[19623,3],[19638,3],[19688,2],[19706,3],[19727,3],[19745,3],[19774,3],[19793,3],[19812,6],[19891,5],[19906,14],[20070,3],[20091,3],[20107,4],[20163,3],[20195,3],[20278,3],[20312,3],[20341,3],[20358,3],[20375,3]] ); let rtAssert = runtime[42] = assertFn("!"); diff --git a/docs/doc/fill.html b/docs/doc/fill.html index 5ef9baf1..843e80e8 100644 --- a/docs/doc/fill.html +++ b/docs/doc/fill.html @@ -6,7 +6,7 @@

Fill elements

A few array operations need an array element to use when no existing element applies. BQN tries to maintain a "default" element for every array, known as a fill element, for this purpose. If it's known, the fill element is a nested array structure where each atom is either 0 or ' '. If no fill is known, a function that requests it results in an error.

-

Fills are used by Take () when a value in 𝕨 is larger than the corresponding length in 𝕩, by the two Nudge functions (»«) when 𝕩 is non-empty, and by First () and Reshape () when 𝕩 is empty. Except for these specific cases, the fill value an array has can't affect the program. The result of Match () doesn't depend on fills, and any attempt to compute a fill can't cause side effects.

+

Fills are used by Take () when a value in 𝕨 is larger than the corresponding length in 𝕩, by the two Nudge functions (»«) when 𝕩 is non-empty, and by Reshape () when 𝕨 contains . Except for these specific cases, the fill value an array has can't affect the program. The result of Match () doesn't depend on fills, and any attempt to compute a fill can't cause side effects.

Using fills

For the examples in this section we'll use the fact that an all-number array usually has 0 as a fill while a string has ' ' (BQN maintains fills alongside array values rather than deriving them from arrays, so it's possible to construct arrays where this isn't true, but this probably wouldn't happen in ordinary code).

Take () and Nudge (»«) in either direction use the fill for padding, to extend the array past its boundary. For example, 𝕨𝕩 will add elements to one side when a number in |𝕨 is larger than the corresponding length in 𝕩.

@@ -26,18 +26,15 @@ »⟨⟩ # Fill not needed ⟨⟩ -

First () and Reshape () use the fill when 𝕩 is empty, and in the case of Reshape only when the result needs to be non-empty.

-↗️
     ""
-' '
-
-    4 ¨ 0, ""
-⟨ ⟨ 0 0 0 0 ⟩ "    " ⟩
-
-    03  ⟨⟩  # Fill not needed
-↕0‿3
+

Reshape () uses the fill when 𝕨 contains and the product of the rest of 𝕨 doesn't evenly divide the number of elements in 𝕩.

+↗️
    8  "completepart"
+┌─          
+╵"complete  
+  part    " 
+           ┘
 
-

If for some reason you need to find an array's fill element, the easiest way is 0a.

-↗️
    0"string"
+

If for some reason you need to find an array's fill element, the easiest general way is probably ⊑»1↑⥊a.

+↗️
    ⊑»1↑⥊"string"
 ' '
 

How fills are computed

diff --git a/docs/doc/find.html b/docs/doc/find.html index bc883db2..1421500e 100644 --- a/docs/doc/find.html +++ b/docs/doc/find.html @@ -32,14 +32,14 @@ "string" (⊢↑⍷) "substring" # APL style ⟨ 0 0 0 1 0 0 0 0 0 ⟩
-

If 𝕨 is larger than 𝕩, the result is empty, and there's no error even in cases where Windows would fail. One place this tends to come up is when applying First () the result: ⊑⍷ tests whether 𝕨 appears in 𝕩 at the first position, that is, whether it's a prefix of 𝕩. If 𝕨 is longer than 𝕩 it shouldn't be a prefix, so 0 is appropriate.

-↗️
    "loooooong"  "short"
+

If 𝕨 is larger than 𝕩, the result is empty, and there's no error even in cases where Windows would fail. One place this tends to come up is when applying First () the result: ⊑⍷ tests whether 𝕨 appears in 𝕩 at the first position, that is, whether it's a prefix of 𝕩. If 𝕨 is longer than 𝕩 it shouldn't be a prefix. First will fail but using a fold 0´ instead gives a 0 in this case.

+↗️
    "loooooong"  "short"
 ⟨⟩
 
     9  "short"
 ERROR
 
-     "loooooong"  "short"
+    0 ´ "loooooong"  "short"
 0
 

This pattern also works in the high-rank case discussed below, testing whether 𝕨 is a multi-dimensional prefix starting at the lowest-index corner of 𝕩.

diff --git a/docs/doc/pick.html b/docs/doc/pick.html index b0e99195..a296d6c0 100644 --- a/docs/doc/pick.html +++ b/docs/doc/pick.html @@ -6,7 +6,7 @@

Pick

Pick () chooses elements from 𝕩 based on index lists from 𝕨. 𝕨 can be a plain list, or even one number if 𝕩 is a list, in order to get one element from 𝕩. It can also be an array of index lists, or have deeper array structure: each index list will be replaced with the element of 𝕩 at that index, effectively applying to 𝕨 at depth 1.

-

With no 𝕨, monadic 𝕩 takes the first element of 𝕩 in index order, or its fill element if 𝕩 is empty (causing an error if no fill is known).

+

With no 𝕨, monadic 𝕩 takes the first element of 𝕩 in index order, with an error if 𝕩 is empty.

While sometimes "scatter-point" indexing is necessary, using Pick to select multiple elements from 𝕩 is less array-oriented than Select (), and probably slower. Consider rearranging your data so that you can select along axes instead of picking out elements.

One element

When the left argument is a number, Pick gets an element from a list:

@@ -55,15 +55,12 @@ 4251 ⟨ 0 0 0 0 ⟩
-

If 𝕩 is empty then Pick always results in an error. First never gives an error: instead it returns the fill element for 𝕩.

-↗️
     ""
-' '
+

If 𝕩 is empty then First results in an error, like Pick.

+↗️
     ""
+ERROR
      π
-0
-     0↑<"  ",4
-⟨ "  " ⟨ 0 0 0 0 ⟩ ⟩
+ERROR
 
-

So one way to find the fill element for an array 𝕩 of any shape is 0𝕩.

In APL it's common to get the last element of a list with an idiom that translates to ⊑⌽, or First-Reverse. In BQN the most straightforward way is to select with index ¯1 instead. I also sometimes use Fold with the Right identity function.

↗️
    ⊑⌽ "last"
 't'
diff --git a/docs/doc/reshape.html b/docs/doc/reshape.html
index 23e77e9c..b9d16cc5 100644
--- a/docs/doc/reshape.html
+++ b/docs/doc/reshape.html
@@ -142,12 +142,12 @@
   235 236 237  
               ┘
 
-

If the left argument implies a larger number of elements, then the argument elements are reused cyclically. Below, we reach the last element 247 and start over at 135. If the array doesn't have any elements to start with, its fill element is used instead, but it's probably best not to invoke this case!

-↗️
    15  a
+

If the left argument implies a larger number of elements, then the argument elements are reused cyclically. Below, we reach the last element 247 and start over at 135. If the array doesn't have any elements to start with, you'll get an error as there aren't any elements available.

+↗️
    15  a
 ⟨ 135 136 137 145 146 147 235 236 237 245 246 247 135 136 137 ⟩
 
-    4  0  # Fill for ↕0 is 0
-⟨ 0 0 0 0 ⟩
+    4  0
+ERROR
 

Reshape is the idiomatic way to make an array filled with a constant value (that is, where all elements are the same). For an atom element, just reshape it directly; for an arbitrary element, first enclose it to create a unit, and then reshape it.

↗️
    34  0
diff --git a/docs/doc/types.html b/docs/doc/types.html
index 46356766..bcc119f6 100644
--- a/docs/doc/types.html
+++ b/docs/doc/types.html
@@ -59,7 +59,7 @@
 

Arrays

Full documentation here.

A BQN array is a multidimensional arrangement of data. This means it has a certain shape, which is a finite list of natural numbers giving the length along each axis, and it contains an element for each possible index, which is a choice of one natural number that's less than each axis length in the shape. The total number of elements, or bound, is then the product of all the lengths in the shape. The shape may have any length including zero, and this shape is known as the array's rank. An array of rank 0, which always contains exactly one element, is called a unit, while an array of rank 1 is called a list and an array of rank 2 is called a table.

-

Each array—empty or nonempty—has an inferred property called a fill. The fill either indicates what element should be used to pad an array, or that such an element is not known and an error should result. Fills can be used by Take (), the two Nudge functions (»«), First (), and Reshape ().

+

Each array—empty or nonempty—has an inferred property called a fill. The fill either indicates what element should be used to pad an array, or that such an element is not known and an error should result. Fills can be used by Take (), the two Nudge functions (»«), and Reshape ().

Arrays are value types (or immutable), so that there is no way to "change" the shape or elements of an array. An array with different properties is a different array. As a consequence, arrays are an inductive type, and it's not possible for an array to contain itself, or contain an array that contains itself, and so on. However, it is possible for an array to contain a function or other operation that has access to the array through a variable, and in this sense an array can "know about" itself.

Different elements of an array should not influence each other. While some APLs force numbers placed in the same array to a common representation, which may have different precision properties, BQN values must not change behavior when placed in an array. However, this doesn't preclude changing the storage type of an array for better performance: for example, in a BQN implementation using 64-bit floats, an array whose elements are all integers that fit in 32-bit int range might be represented as an array of 32-bit ints.

Operation types

diff --git a/docs/spec/primitive.html b/docs/spec/primitive.html index fc60460d..b2e127c6 100644 --- a/docs/spec/primitive.html +++ b/docs/spec/primitive.html @@ -122,13 +122,13 @@

Enclose (<) forms a unit array that contains its argument.

Merge (>) combines the outer axes of an array of arrays with inner axes: it requires that all elements of its argument have the same shape, and creates an array such that (ij)⊑>𝕩 is ij𝕩. It also accepts atom elements of 𝕩, converting them to unit arrays, or an atom argument, which is returned unchanged. Solo and Couple () turn one or two arguments into major cells of the result and can be defined easily in terms of Merge.

Join To () combines its two arguments along an existing initial axis, unless both arguments are units, in which case it creates an axis and is identical to Couple (). The arguments must differ in rank by at most 1, and the result rank is equal to the maximum of 1 and the higher argument rank. Each argument with rank less than the result, and each major cell of an argument with rank equal to it, becomes a major cell of the result, with cells from the left argument placed before those from the right. Join () generalizes the equal-rank subset of this behavior to an array of values instead of just two. The argument must be an array (unlike Merge), and its elements must all the same rank, which is at least the argument rank. Atom elements are treated as unit arrays. Then "outer" argument axes are matched up with leading "inner" element axes, and elements are joined along these axes. In order to allow this, the length of an element along a particular axis must depend only on the position along the corresponding axis in the argument. An empty argument to Join is return unchanged, as though the element rank is equal to the argument rank.

-

Deshape () differs from the provided function (which returns the element list of an array) only in that it accepts an atom, returning a one-element list containing it. Reshape () is extended in numerous ways. It accepts any list of natural numbers (including as a unit array or atom) for the left argument and any right argument; 𝕩 is deshaped first so that it is treated as a list of elements. These elements are repeated cyclically to fill the result array in ravel order. If 𝕩 is empty but the result is not, then the result consists of fill elements for 𝕩. Furthermore, at most one element of 𝕨 can be a "length code": one of the primitives ⌊⌽↑. In this case, a target length is computed from the number of elements in 𝕩 divided by the product of the other elements of 𝕨 (which must not be zero). If the target length is an integer then it is used directly for the length code. Otherwise, an error is given if the length code is , and the target length is rounded down if the code is and up if it's or . With code , elements are repeated cyclically as usual, but with code , the extra elements after each argument element is used are fill values for 𝕩.

+

Deshape () differs from the provided function (which returns the element list of an array) only in that it accepts an atom, returning a one-element list containing it. Reshape () is extended in numerous ways. It accepts any list of natural numbers (including as a unit array or atom) for the left argument and any right argument; 𝕩 is deshaped first so that it is treated as a list of elements. These elements are repeated cyclically to fill the result array in ravel order. If 𝕩 is empty then a non-empty requested result shape causes an error. Furthermore, at most one element of 𝕨 can be a "length code": one of the primitives ⌊⌽↑. In this case, a target length is computed from the number of elements in 𝕩 divided by the product of the other elements of 𝕨 (which must not be zero). If the target length is an integer then it is used directly for the length code. Otherwise, an error is given if the length code is , and the target length is rounded down if the code is and up if it's or . With code , elements are repeated cyclically as usual, but with code , the extra elements after each argument element is used are fill values for 𝕩.

Transpose () reorders axes of its argument to place the first axis last; if the argument has one or fewer axes then it's enclosed if it's an atom and otherwise returned unchanged. Reorder Axes () requires the left argument to be a list or unit of natural numbers, with length at most the rank of the right argument. This list is extended to match the right argument rank exactly by repeatedly appending the least unused natural number (for example, given 1300, 2 is appended). After extension, it specifies a result axis for each axis of the right argument. There must be no gaps in the list: that is, with the result rank equal to one plus the greatest value present, every result axis must appear at least once. Now each argument axis is "sent to" the specified result axis: in terms of indices, i𝕨𝕩 is (𝕨i)𝕩 if 𝕨 is complete. If multiple argument axes correspond to the same result axis, then a diagonal is taken, and it's as long as the shortest of those argument axes. Like Transpose, Reorder Axes encloses 𝕩 if it's an atom, so that its result is always an array.

Indices and selection

Each element in an array se is associated with an index, which is a list of natural numbers i such that ´i<s. The list of all indices, which corresponds to the element list e, contains all such lists i in lexicographic order. That is, index i comes before j exactly when the two indices are not the same, and i has the smaller value at the first position where they are unequal. The index of an element along a particular axis a is the value ai.

Range () is extended to apply to a list of natural numbers, in addition to the provided case of a single natural number (an enclosed natural number 𝕩 should still result in an error). For a list 𝕩, the result is an array of shape 𝕩 in which the value at a given index is that index, as a list of natural numbers. That is, ii⊑↕𝕩 for any list of natural numbers i with ´i<𝕩.

Pick () is extended to array left arguments. In this case, it requires every depth-1 array in the nested structure of 𝕨 to be a valid index list for 𝕩, and every atom to be contained in one of these lists. The result is 𝕨 with each index list replaced by the element of 𝕩 at that index. In the simple case where 𝕨 itself is an index list, the result is the element of 𝕩 at index 𝕨.

-

First () simply takes the first element of its argument in index order, or the fill element if 𝕩 is empty.

+

First () simply takes the first element of its argument in index order, with an error if 𝕩 is empty.

For Select (), 𝕨 is an array of natural numbers, or a list of such arrays; if it's an empty list, it's interpreted as the former. The given arrays are matched with leading axes of 𝕩 and used to select from those axes. Their shape is retained, so that the final shape is the combined shapes of each array of natural numbers in 𝕨 in order, followed by the trailing (unmatched) shape of 𝕩. This means that a single axis in 𝕩 can correspond to any number of axes in 𝕨𝕩, depending on the rank of that portion of 𝕨. More precisely, the value of the result at an index j is obtained by splitting j into one index into each array of 𝕨 followed by a partial index into 𝕩. An index i for 𝕩 comes from selecting from each array of 𝕨 and appending the results to the partial index from j, and the value i𝕩 is j𝕨𝕩.

First Cell () selects the initial major cell of 𝕩, giving an error if 𝕩 has rank 0 or length 0.

Group () performs an opposite operation to Select, so that 𝕨 specifies not the argument index that result values come from, but the result index that argument values go to. The general case is that 𝕨 is a list of arrays of numbers; if it has depth less than 2 it's converted to this form by first enclosing it if it's an atom, then placing it in a length-1 list. After this transformation, the result rank is 𝕨, and each result element has rank (𝕨)+(=𝕩)-+´=¨𝕨, with the initial 𝕨 axes corresponding to elements of 𝕨 and the remainder to trailing axes of 𝕩. Each atom in 𝕨 can be either a natural number or ¯1 (which indicates the corresponding position in 𝕩 will be omitted). If ¯1 doesn't appear, the result has the property that each cell of 𝕩 appears in the corresponding element of 𝕨𝕨𝕩. More concretely, the length of the result along axis a is the maximum value in a𝕨 plus one, or zero if a𝕨 is empty. Axis a corresponds to =a𝕨 axes in 𝕩, and an element of the result at position i along this axis contains all positions in 𝕩 where i=a𝕨. There may be multiple such positions, and they're arranged along axis a of that result element according to their index order in 𝕩. The shapes of components of 𝕨 must match the corresponding axes of 𝕩, except for rank-1 components of 𝕨, which can match or have an extra element. This element, which like the others is either a natural number or ¯1, gives the minimum length of the result axis corresponding to the component of 𝕨 in question, but otherwise does not affect the result. Group Indices treats its argument 𝕩 as a left argument for Group and uses a right argument made up of indices, which is ↕≠𝕩 if 𝕩 has depth 1 and ↕∾≢¨𝕩 if it has depth 2. Because the depth-1 case uses atomic indices, 𝕩 is required to be a list (and it can't be an atom). Much like Range, the result has depth one higher than the argument.

-- cgit v1.2.3