diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-12-12 16:12:46 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-12-12 16:22:36 -0500 |
| commit | 9543711d3e87382aa8a90810b243754895af149b (patch) | |
| tree | 86c9e3267d95b9d7b546bb1f4d5a1c0d5294fd74 | |
| parent | 1b5b2eff12c8a3f7f21d6f50a698bea7c4e81e8e (diff) | |
Use Type instead of IsArray in the runtime
| -rw-r--r-- | docs/bqn.js | 22 | ||||
| -rwxr-xr-x | src/pr.bqn | 2 | ||||
| -rw-r--r-- | src/r.bqn | 15 | ||||
| -rwxr-xr-x | test/dz_comp | 4 |
4 files changed, 22 insertions, 21 deletions
diff --git a/docs/bqn.js b/docs/bqn.js index 84740e02..4c94b04e 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -1,9 +1,11 @@ "use strict"; // Virtual machine let has = x => x!==undefined; +let isnum = x => typeof x === "number" +let isfunc = x => typeof x === "function" let call = (f,x,w) => { if (x===undefined) return x; - if (typeof f !== "function") return f; + if (!isfunc(f)) return f; if (f.m) throw Error("Runtime: Cannot call modifier as function"); return f(x, w); } @@ -83,7 +85,6 @@ let run = (B,O,S,L) => { // Bytecode, Objects, Sections/blocks let assertFn = pre => (x,w) => { if (x!==1) throw {src:pre, message:w}; return x; } -let isnum = x => typeof x === "number" let arr = (r,sh) => {r.sh=sh;return r;} let list = l => arr(l,[l.length]); let str = s => list(Array.from(s)); @@ -166,10 +167,14 @@ let group_ord = (x,w) => { // βΎβx assuming w=group_len(x) x.map((e,i)=>{if(e>=0)r[s[e]++]=i;}); return list(r); } +let type = x => isfunc(x) ? 3+(x.m||0) : x.sh ? 0 : 2-isnum(x); +let decompose = x => list(!isfunc(x) ? [-1,x] + : x.glyph ? [0,x] : x.repr ? x.repr() : [1,x]); +let glyph = x => x.glyph; let provide = [ - (x,w) => x.sh?1:0 // IsArray - ,(x,w) => 0 // Type + type // Type + ,(x,w) => 0 // GetFill ,log // Log ,group_len // GroupLen ,group_ord // GroupOrd @@ -192,9 +197,9 @@ let provide = [ ]; let runtime = run( - [15,1,22,0,0,11,14,15,2,22,0,1,11,14,15,3,0,20,15,4,8,22,0,2,11,14,15,5,22,0,3,11,14,15,6,22,0,4,11,14,15,7,22,0,5,11,14,15,8,22,0,6,11,14,15,9,22,0,7,11,14,15,10,22,0,8,11,14,15,11,22,0,9,11,14,0,12,21,0,7,0,11,8,0,21,3,2,21,0,0,0,0,8,22,0,10,11,14,0,12,21,0,7,0,11,8,0,8,0,13,21,0,7,0,21,8,19,0,21,3,2,21,0,0,0,0,8,22,0,11,11,14,15,12,0,15,3,2,21,0,0,0,0,8,22,0,12,11,14,15,13,0,20,15,14,8,22,0,13,11,14,15,15,22,0,14,11,14,0,0,0,7,0,22,19,21,0,9,21,0,14,8,22,0,15,11,14,21,0,4,0,13,7,22,0,16,11,14,21,0,16,0,7,0,22,19,0,20,21,0,14,8,22,0,17,11,14,0,13,0,7,0,22,19,22,0,18,11,14,15,16,0,16,21,0,18,19,0,20,0,11,8,22,0,19,11,14,15,17,0,16,21,0,17,19,0,20,0,7,21,0,5,21,0,19,21,0,5,0,7,8,8,8,22,0,20,11,14,0,7,21,0,1,3,2,21,0,0,0,13,21,0,7,0,21,8,8,22,0,21,11,14,0,22,0,14,0,16,0,21,19,3,2,21,0,0,0,12,21,0,17,0,21,19,8,22,0,22,11,14,15,18,22,0,23,11,14,21,0,23,22,0,24,11,14,0,14,21,0,8,15,19,8,22,0,25,11,14,15,20,22,0,26,11,14,15,21,15,22,3,2,21,0,0,21,0,1,21,0,5,0,12,8,0,12,0,22,19,8,22,0,27,11,14,21,0,27,22,0,28,11,14,15,23,22,0,29,11,14,15,24,22,0,30,11,14,0,13,0,7,21,0,16,19,22,0,31,11,14,0,22,0,15,0,16,0,21,19,21,0,8,0,13,0,8,0,23,19,0,7,0,22,19,15,25,3,2,21,0,0,21,0,1,21,0,5,0,0,8,8,8,3,2,21,0,0,21,0,1,21,0,5,0,14,8,21,0,24,0,8,7,0,22,19,21,0,17,0,21,19,8,22,0,32,11,14,21,0,31,21,0,32,21,0,4,21,0,32,7,0,7,9,3,2,21,0,0,21,0,2,21,0,5,0,0,8,8,15,26,3,3,21,0,0,0,0,21,0,6,0,6,8,8,22,0,33,11,14,15,27,22,0,34,11,14,15,28,22,0,35,11,14,0,12,21,0,17,0,21,19,21,0,9,15,29,8,22,0,36,11,14,0,12,21,0,17,0,21,19,21,0,9,15,30,8,22,0,37,11,14,15,31,22,0,38,11,14,15,32,22,0,39,11,14,15,33,22,0,40,11,14,15,34,22,0,41,11,14,15,35,22,0,42,11,14,15,36,22,0,43,11,14,15,37,22,0,44,11,14,15,38,22,0,45,11,14,15,39,22,0,46,11,14,0,0,21,0,6,0,12,8,0,21,3,2,21,0,1,21,0,5,0,0,8,0,12,3,2,0,12,21,0,6,0,12,8,0,21,3,2,0,14,21,0,6,21,0,46,0,12,7,8,21,0,24,0,8,7,0,22,19,0,21,3,2,15,40,3,5,21,0,24,15,41,7,16,22,0,47,11,14,0,21,15,42,3,2,21,0,0,0,0,8,22,0,48,11,14,21,0,47,0,20,21,0,48,8,22,0,49,11,14,21,0,47,0,7,0,22,19,0,20,3,0,0,14,3,2,21,0,0,0,0,8,8,22,0,50,11,14,0,0,21,0,9,0,15,21,0,5,21,0,22,8,21,0,17,0,21,19,21,0,9,15,43,8,8,22,0,51,11,14,15,44,21,0,9,15,45,15,46,3,2,21,0,0,0,22,0,18,0,12,0,12,0,22,19,7,21,0,24,0,8,7,0,22,19,0,7,0,22,19,3,2,21,0,0,0,12,0,12,0,22,19,8,8,8,22,0,52,11,14,15,47,22,0,53,11,14,21,0,53,0,55,21,0,21,21,0,8,0,12,8,0,7,0,22,19,15,48,3,3,7,22,0,54,11,14,21,0,53,0,56,0,12,21,0,7,0,21,8,0,7,0,22,19,15,49,3,3,7,22,0,55,11,14,15,50,22,0,56,11,14,15,51,22,0,57,11,14,15,52,22,0,58,11,14,15,53,22,0,59,11,14,15,54,22,0,60,11,14,15,55,22,0,61,11,14,15,56,22,0,62,11,14,21,0,30,0,9,7,22,0,63,11,14,21,0,30,0,10,7,22,0,64,11,14,21,0,4,21,0,63,21,0,8,21,0,64,8,7,0,20,0,23,21,0,63,16,21,0,8,21,0,64,8,8,22,0,65,11,14,21,0,30,15,57,0,20,21,0,21,8,7,22,0,66,11,14,21,0,30,15,58,0,20,21,0,19,8,7,22,0,67,11,14,21,0,30,15,59,0,20,0,7,21,0,5,21,0,67,21,0,5,0,7,8,8,8,7,22,0,68,11,14,21,0,30,0,8,7,0,20,21,0,42,0,21,7,8,22,0,69,11,14,21,0,30,0,8,0,7,0,6,19,7,0,20,21,0,42,0,22,7,8,22,0,70,11,14,21,0,30,0,8,0,20,21,0,18,0,7,21,0,17,19,21,0,7,0,21,8,8,7,22,0,71,11,14,21,0,30,21,0,16,0,7,0,22,19,7,0,20,21,0,14,8,22,0,72,11,14,21,0,30,0,13,0,7,0,22,19,7,0,20,21,0,51,8,22,0,73,11,14,21,0,30,0,12,0,7,0,22,19,7,0,20,21,0,22,8,22,0,74,11,14,21,0,30,0,12,7,0,20,0,12,8,22,0,75,11,14,21,0,30,21,0,16,7,0,20,21,0,3,0,21,7,0,5,0,69,19,8,22,0,76,11,14,21,0,30,0,13,7,0,20,21,0,3,0,21,7,0,5,0,70,19,8,22,0,77,11,14,21,0,30,0,6,7,22,0,78,11,14,21,0,30,0,7,7,22,0,79,11,14,21,0,79,21,0,78,0,22,19,22,0,80,11,14,21,0,78,0,21,3,2,21,0,79,0,21,3,2,21,0,71,0,22,3,2,21,0,63,0,22,3,2,21,0,64,0,22,3,2,21,0,65,0,22,3,2,21,0,69,0,22,3,2,21,0,70,0,21,3,2,21,0,80,0,22,3,2,21,0,66,0,21,3,2,21,0,67,0,29,3,2,21,0,68,0,28,3,2,21,0,72,0,21,3,2,21,0,77,0,22,3,2,21,0,75,0,22,3,2,21,0,76,0,22,3,2,21,0,73,0,21,3,2,21,0,74,0,21,3,2,3,18,21,0,24,15,60,7,21,0,4,0,21,7,0,5,0,71,19,3,1,0,16,0,21,17,17,22,0,81,11,14,15,61,22,0,82,11,14,0,15,0,20,21,0,12,8,22,0,83,11,14,15,62,22,0,84,11,14,15,63,22,0,85,11,14,15,64,22,0,86,11,14,15,65,22,0,87,11,14,15,66,22,0,88,11,14,21,0,88,22,0,89,11,14,21,0,83,21,0,6,21,0,26,8,15,67,3,2,21,0,0,21,0,75,21,0,72,0,22,19,21,0,6,21,0,70,8,8,22,0,90,11,14,21,0,28,21,0,7,21,0,35,8,22,0,91,11,14,21,0,74,21,0,75,0,21,19,21,0,79,0,22,19,21,0,62,15,68,15,69,3,2,21,0,0,21,0,2,21,0,5,0,0,8,8,8,22,0,92,11,14,21,0,54,0,20,21,0,40,8,22,0,93,11,14,21,0,55,0,20,21,0,41,8,22,0,94,11,14,21,0,60,0,20,21,0,84,8,22,0,95,11,14,0,21,21,0,62,21,0,39,8,0,20,21,0,38,8,22,0,96,11,14,21,0,92,0,20,21,0,35,8,22,0,97,11,14,21,0,57,0,20,21,0,57,21,0,7,21,0,59,8,8,22,0,98,11,14,21,0,58,0,20,21,0,58,21,0,7,21,0,59,8,8,22,0,99,11,14,15,70,22,0,100,11,14,15,71,22,0,101,11,14,15,72,22,0,102,11,14,15,73,22,0,103,11,14,21,0,103,15,74,3,2,21,0,0,21,0,2,21,0,5,21,0,83,21,0,5,0,18,0,0,7,8,8,21,0,24,21,0,70,7,9,8,22,0,104,11,14,21,0,104,21,0,7,21,0,83,21,0,1,3,2,21,0,0,0,0,8,8,22,0,105,11,14,15,75,22,0,106,11,14,15,76,22,0,107,11,14,15,77,22,0,108,11,14,15,78,22,0,109,11,14,21,0,86,22,0,110,11,14,21,0,87,22,0,111,11,14,21,0,109,21,0,33,7,0,20,0,21,21,0,34,21,0,33,8,8,22,0,112,11,14,21,0,109,21,0,4,21,0,33,7,7,0,20,0,22,21,0,34,21,0,4,21,0,33,7,8,8,22,0,113,11,14,15,79,22,0,114,11,14,0,4,21,0,7,21,0,46,0,22,7,8,22,0,115,11,14,15,80,22,0,116,11,14,21,0,116,21,0,1,21,0,5,0,19,21,0,78,7,8,21,0,4,21,0,79,7,0,22,19,21,0,4,21,0,28,7,21,0,4,21,0,97,21,0,5,21,0,112,21,0,5,21,0,115,8,8,7,19,7,22,0,117,11,14,15,81,22,0,118,11,14,21,0,13,21,0,5,21,0,73,8,22,0,119,11,14,21,0,90,0,20,21,0,52,8,22,0,120,11,14,21,0,102,0,20,21,0,101,8,22,0,121,11,14,21,0,114,0,22,7,0,20,21,0,117,8,22,0,122,11,14,21,0,4,21,0,114,0,21,7,7,0,20,21,0,116,21,0,1,7,8,22,0,123,11,14,15,82,22,0,124,11,14,15,83,22,0,125,11,14,15,84,22,0,126,11,14,15,85,22,0,127,11,14,21,0,126,0,20,21,0,36,8,22,0,128,11,14,21,0,112,21,0,5,21,0,112,8,21,0,28,21,0,79,21,0,1,19,21,0,4,21,0,122,7,19,22,0,129,11,14,15,86,22,0,130,11,14,0,22,21,0,62,21,0,44,8,21,0,7,21,0,15,8,0,20,21,0,43,8,22,0,131,11,14,21,0,105,0,20,21,0,83,0,16,0,21,19,8,22,0,132,11,14,15,87,22,0,133,11,14,0,5,21,0,7,0,104,8,22,0,134,11,14,0,5,21,0,7,0,105,8,22,0,135,11,14,15,88,22,0,136,11,14,15,89,22,0,137,11,14,15,90,22,0,138,11,14,21,0,78,21,0,4,21,0,79,7,0,20,21,0,78,8,21,0,79,21,0,79,21,0,71,21,0,4,21,0,63,7,0,20,21,0,1,8,21,0,63,21,0,63,21,0,64,21,0,30,0,2,7,21,0,65,21,0,4,21,0,64,7,0,20,21,0,4,21,0,71,7,8,21,0,69,21,0,4,21,0,63,7,0,20,21,0,69,21,0,136,21,0,1,8,8,21,0,70,21,0,2,21,0,79,0,22,19,21,0,63,21,0,4,21,0,79,7,19,0,20,21,0,70,21,0,136,21,0,1,8,8,21,0,80,21,0,80,21,0,72,0,21,21,0,5,21,0,134,8,0,20,15,91,8,21,0,1,21,0,1,21,0,2,21,0,49,21,0,5,21,0,135,8,21,0,2,21,0,1,19,0,20,21,0,1,8,21,0,120,15,92,0,20,0,21,21,0,5,21,0,134,8,8,21,0,119,15,93,0,20,15,94,8,21,0,93,0,21,21,0,5,21,0,134,8,0,20,21,0,93,21,0,136,21,0,132,21,0,7,0,27,8,8,8,21,0,94,0,21,21,0,5,21,0,134,8,0,20,21,0,94,21,0,136,21,0,132,8,8,21,0,95,0,21,21,0,5,21,0,134,8,0,20,21,0,95,21,0,136,21,0,50,8,8,21,0,96,21,0,96,21,0,7,21,0,79,8,0,20,21,0,96,8,21,0,128,21,0,127,0,20,21,0,37,8,21,0,97,0,21,21,0,5,21,0,134,8,0,20,15,95,8,21,0,121,21,0,138,0,20,21,0,137,8,3,42,21,0,83,21,0,7,21,0,74,21,0,4,21,0,63,7,0,23,19,21,0,4,21,0,120,7,0,23,19,8,16,21,0,128,16,15,96,16,22,0,139,11,14,15,97,22,0,140,11,14,15,98,22,0,141,11,14,21,0,72,21,0,122,21,0,5,21,0,132,8,21,0,5,21,0,67,21,0,96,21,0,93,3,4,19,22,0,142,11,14,21,0,141,22,0,143,11,14,21,0,82,0,20,21,0,12,8,22,0,144,11,14,15,99,22,0,145,11,14,21,0,45,22,0,146,11,14,21,0,130,0,20,21,0,129,8,22,0,147,11,14,21,0,118,0,20,21,0,97,21,0,7,21,0,123,8,8,22,0,148,11,14,21,0,78,21,0,79,21,0,71,21,0,63,21,0,64,21,0,65,21,0,67,21,0,68,21,0,66,21,0,80,21,0,69,21,0,70,21,0,72,21,0,73,21,0,74,21,0,75,21,0,77,21,0,76,21,0,49,21,0,50,21,0,2,21,0,1,21,0,144,21,0,120,21,0,119,21,0,93,21,0,94,21,0,95,21,0,99,21,0,98,21,0,96,21,0,128,21,0,97,21,0,112,21,0,113,21,0,131,21,0,132,21,0,122,21,0,147,21,0,123,21,0,148,21,0,121,0,5,21,0,3,21,0,4,21,0,61,21,0,46,21,0,145,21,0,140,21,0,24,21,0,89,0,19,21,0,5,21,0,6,21,0,7,21,0,8,21,0,146,0,20,21,0,133,21,0,111,21,0,110,21,0,143,3,62,25,21,0,1,15,100,21,0,5,0,16,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,25,21,0,2,25,21,0,1,25,21,0,1,14,21,0,4,25,21,0,1,21,1,2,21,0,2,17,21,0,4,21,0,1,17,25,21,0,1,21,0,5,21,0,2,17,21,0,4,16,25,21,0,1,21,0,5,16,21,0,4,21,0,2,21,0,5,16,17,25,21,0,1,21,0,5,21,0,1,21,1,2,21,0,2,17,21,0,4,16,17,25,21,0,1,21,0,5,16,21,0,4,21,0,1,21,1,2,21,0,2,17,17,25,21,0,1,15,101,21,1,1,21,0,4,3,2,0,16,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,3,1,0,15,3,0,17,25,21,0,2,21,0,1,3,2,25,21,0,2,21,0,1,3,2,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,31,17,14,21,0,1,22,0,5,11,21,1,22,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,2,0,20,15,102,15,103,3,2,21,1,0,21,0,6,21,1,17,0,21,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,0,17,16,0,18,0,7,21,1,7,0,22,0,7,21,0,6,17,8,7,16,0,18,15,104,7,16,14,21,0,8,25,21,0,2,0,7,21,0,1,21,1,22,16,17,0,17,16,0,18,21,1,3,21,0,1,7,0,16,0,6,21,1,7,21,0,2,8,19,7,16,25,21,0,2,21,1,22,16,22,0,3,11,14,21,0,1,21,1,22,16,0,6,21,0,3,17,0,17,16,0,18,21,0,2,21,1,8,0,16,8,21,1,4,21,0,1,7,0,16,21,0,3,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,3,8,8,7,16,25,21,0,1,21,1,25,0,22,17,22,0,3,11,21,1,24,0,8,7,0,22,17,22,0,4,11,14,21,0,4,0,17,16,0,15,21,0,3,17,0,18,0,6,21,1,7,0,8,21,1,7,21,0,4,8,8,21,1,4,0,16,7,21,0,1,0,15,16,19,7,21,0,2,17,25,21,0,2,0,18,21,0,1,21,1,8,0,16,8,7,16,25,15,105,22,0,2,11,14,15,106,22,0,3,11,14,21,0,3,21,0,1,7,21,1,4,21,0,3,21,1,4,21,0,1,7,7,7,3,2,21,1,0,0,12,21,1,6,21,1,18,8,8,21,0,2,21,0,1,7,3,2,21,1,0,0,12,21,1,6,0,12,8,8,25,15,107,21,0,1,7,22,0,2,11,14,21,0,1,15,108,15,109,3,2,21,1,0,0,0,21,1,6,21,1,18,8,8,0,20,0,18,21,0,2,7,8,21,1,29,21,0,2,7,3,3,21,1,0,0,0,21,1,6,0,6,8,8,25,21,0,1,21,1,32,21,0,2,17,25,21,0,1,0,14,21,1,6,21,1,106,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,24,21,1,107,21,0,1,0,15,16,21,1,8,0,16,8,21,1,8,21,1,33,21,1,7,21,0,2,0,15,16,21,1,8,0,16,8,8,8,7,7,16,22,0,4,11,14,0,21,21,1,4,21,0,4,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,34,17,14,21,0,1,21,1,22,16,22,0,6,11,14,21,0,1,21,1,25,0,22,17,21,1,24,0,8,7,0,22,17,22,0,7,11,14,21,0,1,0,15,16,22,0,8,11,14,0,21,22,0,9,11,22,0,10,11,14,21,0,8,0,21,0,18,21,1,10,7,21,1,24,0,8,7,0,22,19,3,2,21,1,0,21,0,6,21,1,17,0,24,17,0,8,0,22,0,12,21,0,7,17,17,8,16,21,1,1,21,1,9,21,0,1,21,1,8,15,110,8,8,16,0,7,0,22,17,22,0,11,11,14,21,0,1,0,18,21,0,10,21,1,8,0,7,8,0,7,21,1,7,21,0,9,8,3,2,0,16,21,0,5,17,7,0,4,21,1,7,0,3,8,9,15,111,21,0,4,7,3,2,21,1,0,21,0,11,8,16,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,35,17,14,21,0,1,21,1,22,16,22,0,3,11,14,21,0,1,21,0,3,21,1,17,0,21,17,21,1,9,15,112,8,16,25,21,0,1,21,1,22,16,22,0,3,11,14,21,0,1,21,1,25,0,22,17,22,0,4,11,21,1,24,0,8,7,0,22,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,1,3,21,0,1,0,15,16,7,0,16,0,8,21,1,7,21,0,5,8,21,1,8,0,6,8,19,7,21,0,5,0,17,16,0,15,21,0,4,17,17,25,21,0,1,0,12,16,21,1,4,0,7,7,0,22,17,22,0,3,11,14,21,0,1,0,14,16,22,0,4,11,14,21,0,4,0,16,21,0,3,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,0,4,21,1,8,0,16,8,7,16,22,0,6,11,14,21,0,6,21,1,24,0,8,7,0,22,17,0,17,16,0,15,21,0,6,17,0,18,21,1,3,21,0,1,0,15,16,7,0,16,0,8,21,1,7,21,0,5,8,21,1,8,0,6,8,19,7,21,0,5,0,17,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,37,17,14,21,0,1,21,1,22,16,22,0,3,11,14,21,0,1,21,1,28,21,0,3,0,17,16,0,18,0,7,21,1,7,0,22,0,7,21,0,3,17,8,7,16,17,25,21,0,2,21,1,10,16,0,5,0,38,17,14,21,0,1,21,1,22,16,22,0,3,11,14,21,0,3,0,9,21,0,2,17,21,1,19,16,0,8,21,0,3,17,0,7,22,0,2,13,14,21,0,1,21,1,28,21,0,3,0,17,16,0,18,21,1,1,0,13,21,0,2,0,7,21,0,3,17,19,0,8,21,0,3,19,0,7,21,1,1,19,0,6,21,0,2,19,7,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,39,17,14,21,0,1,21,1,22,16,0,6,0,22,17,0,17,16,0,18,21,0,1,21,1,8,21,1,28,21,1,7,0,17,8,8,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,40,17,14,21,0,1,21,1,22,16,22,0,3,11,14,21,0,3,0,6,0,22,17,0,17,16,0,18,21,0,1,21,1,8,21,1,28,21,1,7,15,113,8,8,7,16,25,21,1,28,21,1,7,21,0,1,21,1,34,21,1,33,21,1,4,21,1,33,7,3,2,0,16,21,0,1,17,8,8,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,41,17,14,21,0,1,21,1,27,0,21,21,1,17,16,17,25,21,0,2,0,0,16,0,5,0,42,17,14,21,0,2,0,18,21,1,10,7,16,0,15,16,21,1,24,0,8,7,0,22,17,0,5,0,43,17,14,21,0,1,21,1,22,16,22,0,3,11,14,21,0,2,0,18,21,1,18,21,1,7,21,0,3,8,0,8,0,13,21,1,7,21,0,3,0,7,16,8,19,7,16,0,15,16,21,1,24,0,8,7,0,22,17,0,5,0,44,17,14,21,0,1,21,1,28,21,1,7,0,18,21,1,1,21,1,18,0,21,19,0,8,21,0,3,19,0,6,21,1,1,19,7,8,21,0,2,17,25,21,0,1,0,14,16,22,0,6,11,21,1,24,0,8,7,0,22,17,22,0,7,11,0,17,16,22,0,8,11,14,21,0,1,21,0,5,21,1,6,21,0,4,8,21,0,2,17,22,0,9,11,14,21,0,8,0,15,21,0,6,17,21,0,5,16,22,0,10,11,14,15,114,0,15,3,2,0,16,21,0,10,0,0,16,17,22,0,11,11,14,21,0,9,21,0,11,16,22,0,9,12,14,21,0,10,21,0,11,16,22,0,10,12,14,21,0,10,0,21,21,1,34,21,1,31,8,16,22,0,12,11,14,21,1,4,21,0,10,7,0,16,21,0,12,21,1,8,0,16,8,19,21,0,7,3,2,21,1,0,0,13,21,1,7,21,0,12,21,1,22,16,8,8,22,0,13,11,14,0,21,22,0,14,11,21,0,13,16,22,0,15,11,14,21,0,8,0,18,21,0,1,0,15,16,21,1,8,0,16,8,15,115,3,2,21,1,0,15,116,8,7,16,0,15,21,0,6,17,25,21,0,1,21,1,15,21,1,6,21,1,29,21,0,4,7,0,20,0,18,21,0,4,7,8,8,21,0,2,17,25,21,0,1,21,1,46,21,1,47,7,21,0,2,17,0,15,16,21,1,24,0,8,7,0,22,17,25,21,0,2,0,16,0,22,17,21,0,1,3,2,21,1,0,21,0,2,0,16,0,21,17,8,25,21,0,1,0,15,16,0,18,21,1,48,7,16,21,1,24,0,7,0,8,0,13,19,0,7,21,1,2,19,7,0,21,17,0,6,0,22,17,25,21,0,1,0,15,16,0,16,0,21,17,21,1,50,16,22,0,3,11,14,21,0,1,0,15,16,0,18,21,1,50,21,1,49,21,0,3,19,7,16,21,1,24,0,8,7,0,22,17,0,5,0,45,17,14,21,0,3,21,1,24,0,8,7,0,22,17,0,17,16,0,15,21,0,3,17,0,18,21,1,4,21,1,12,21,1,8,0,16,8,7,7,21,0,1,17,25,21,0,1,0,0,16,0,5,0,50,17,14,21,0,1,0,15,16,21,1,22,16,21,1,17,0,21,17,25,0,27,22,0,3,11,22,0,4,11,14,3,0,22,0,5,11,14,21,0,1,22,0,6,11,14,21,0,1,0,18,21,1,22,7,16,21,1,35,16,0,18,15,117,7,16,25,21,0,1,0,15,16,22,0,3,11,21,1,22,16,22,0,4,11,14,21,0,3,0,18,21,1,50,7,16,22,0,5,11,14,21,0,5,0,16,0,21,17,21,1,22,16,22,0,6,11,14,21,0,1,0,12,16,22,0,7,11,14,21,0,5,0,18,21,1,22,0,12,21,0,6,19,7,16,21,1,24,0,8,7,0,22,17,0,5,0,46,17,14,21,0,7,21,1,16,21,0,6,17,0,5,0,47,17,14,15,118,22,0,8,11,14,21,0,1,21,1,50,16,22,0,9,11,14,0,22,22,0,10,11,14,0,21,21,1,17,16,22,0,11,11,22,0,12,11,14,21,0,7,0,17,16,21,1,46,15,119,7,21,0,9,21,1,38,16,21,0,8,0,8,7,0,22,17,21,1,38,16,17,14,21,1,46,15,120,21,0,3,0,18,0,15,7,16,7,7,22,0,13,11,14,21,0,11,21,0,13,15,121,3,2,21,1,0,21,0,6,21,1,17,21,0,7,17,8,21,0,12,17,25,21,0,1,22,0,2,22,0,3,22,0,4,4,3,11,14,0,52,21,1,26,21,0,2,17,21,1,26,0,51,17,22,0,5,11,14,0,53,22,0,6,11,14,0,54,22,0,7,11,14,15,122,25,21,0,1,21,1,21,16,22,0,5,11,21,1,17,21,1,7,21,0,2,8,21,1,9,21,0,4,8,16,14,21,0,5,0,17,16,0,18,21,0,1,0,6,21,0,2,17,21,1,8,0,6,8,7,0,18,0,21,21,1,8,21,1,17,8,21,1,9,0,28,8,7,9,0,18,0,13,21,1,7,21,0,2,8,21,1,9,0,28,8,7,3,2,21,1,0,21,0,1,21,1,17,0,21,17,8,16,25,21,0,1,14,0,6,21,1,20,0,21,19,0,17,9,0,7,21,1,20,0,21,19,0,17,9,0,18,0,6,7,21,1,1,21,1,5,21,1,17,8,19,3,2,21,1,0,21,1,17,21,1,7,0,21,8,8,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,57,17,14,21,0,2,0,12,21,1,6,0,7,8,21,0,1,17,22,0,3,11,14,21,0,3,0,13,0,21,17,0,5,0,58,17,14,21,0,3,21,1,16,0,22,17,0,5,0,59,17,14,21,0,1,21,1,25,0,22,17,22,0,4,11,14,21,0,4,21,1,22,16,0,17,16,0,18,21,1,3,21,0,2,21,1,50,16,7,0,16,21,0,3,0,7,0,22,17,21,1,8,0,6,8,19,0,12,21,0,4,21,1,8,0,16,8,19,7,16,21,1,24,0,8,7,0,22,17,0,5,0,60,17,14,21,0,4,21,1,24,0,8,7,0,22,17,25,21,0,1,21,1,56,21,0,2,17,22,0,3,11,14,21,0,2,0,22,21,1,22,3,2,21,1,0,21,1,1,0,12,21,1,6,0,13,8,21,0,1,19,8,16,0,8,21,0,3,17,22,0,4,11,14,21,0,1,21,1,22,16,0,8,21,0,3,17,0,17,16,0,18,21,0,2,21,1,12,16,21,1,8,0,16,8,21,1,3,21,0,1,0,15,16,7,0,16,21,0,4,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,4,8,8,7,16,0,15,21,0,1,21,1,50,16,17,25,21,0,1,21,1,56,21,0,2,17,22,0,3,11,14,21,0,1,21,1,22,16,0,8,21,0,3,17,22,0,4,11,14,21,0,2,0,22,21,1,22,3,2,21,1,0,21,1,1,0,12,21,1,6,0,13,8,21,0,1,19,8,16,0,8,21,0,3,17,22,0,5,11,14,21,0,5,0,7,21,0,4,17,22,0,6,11,14,21,0,4,0,17,16,0,18,21,1,3,21,0,1,0,15,16,7,0,16,21,0,5,21,1,8,0,6,8,19,21,1,3,21,0,2,21,1,12,16,7,0,16,21,0,6,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,6,8,8,7,16,0,15,21,0,1,21,1,50,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,57,17,14,21,0,1,21,1,25,0,22,17,21,1,1,21,1,24,0,8,7,0,22,19,0,17,9,21,1,8,0,15,8,16,0,18,21,0,1,0,1,16,7,16,25,21,0,1,0,0,16,0,5,0,61,17,14,21,0,2,0,12,16,21,1,16,0,22,17,0,5,0,62,17,14,21,0,2,21,1,12,16,22,0,2,12,21,1,22,16,22,0,3,11,14,21,0,1,21,0,3,21,1,17,0,21,17,21,1,9,15,123,8,21,0,2,17,25,21,0,1,0,27,21,1,87,21,0,4,8,21,0,2,17,25,21,0,1,22,0,3,11,14,15,124,15,125,3,2,21,1,0,21,1,2,21,1,5,21,1,49,21,1,17,21,0,2,19,8,8,25,21,0,2,21,1,63,21,0,1,17,21,1,19,16,0,8,21,0,2,17,0,7,21,0,1,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,18,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,17,21,0,2,17,17,25,21,0,1,21,0,2,0,16,0,22,17,3,2,21,1,0,15,126,21,0,2,0,16,0,21,17,7,8,25,21,0,2,21,1,75,16,21,1,76,0,22,17,0,5,0,72,17,14,21,0,2,21,1,12,16,22,0,3,11,14,21,0,3,0,18,21,1,11,7,16,21,1,80,16,22,0,4,11,21,1,24,21,1,78,7,16,22,0,5,11,14,21,0,5,21,1,76,0,22,17,0,5,0,73,17,14,21,0,1,21,1,12,16,22,0,6,11,21,1,74,16,22,0,7,11,14,21,0,3,21,1,24,21,1,71,7,15,127,3,2,21,1,0,21,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,21,1,74,21,0,8,17,21,1,9,15,128,8,16,0,15,21,0,3,17,25,15,129,22,0,3,11,14,15,130,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,0,0,0,8,16,25,21,0,1,21,1,5,21,1,83,8,21,1,1,21,1,5,21,1,72,8,21,1,46,0,16,7,21,1,74,21,1,8,21,1,4,21,1,66,21,1,78,0,22,19,21,1,79,21,1,2,19,7,8,19,0,22,0,21,3,2,0,20,0,23,3,1,8,19,25,21,0,1,21,1,85,21,0,5,7,21,0,2,17,22,0,6,11,21,1,73,0,21,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,131,22,0,9,11,14,21,0,1,21,0,9,21,0,6,7,21,0,2,17,25,21,0,1,21,1,85,21,0,5,7,21,1,46,21,1,79,21,1,8,21,1,67,8,21,1,79,21,1,68,0,21,19,3,2,21,1,0,21,1,1,21,1,77,0,21,19,8,7,21,1,75,21,1,6,21,1,13,8,19,21,0,2,17,22,0,6,11,14,15,132,22,0,7,11,14,21,1,1,21,1,72,9,21,0,7,21,1,1,0,18,21,1,72,7,9,3,3,21,1,0,21,1,75,21,1,8,21,1,76,8,21,1,78,0,22,19,21,1,71,0,21,21,1,8,21,1,73,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,16,21,1,7,21,1,74,21,1,4,21,1,79,7,0,22,19,8,16,17,21,1,46,21,0,4,7,21,0,2,21,0,7,21,0,6,0,16,0,21,17,17,17,21,1,73,16,25,21,0,1,21,1,75,16,21,1,77,0,22,17,0,5,0,79,17,14,21,0,1,21,1,61,21,1,72,7,16,21,1,24,21,0,4,7,21,0,2,17,25,21,0,1,21,1,50,21,1,6,21,1,13,8,21,0,2,17,22,0,3,11,14,21,0,3,0,18,21,1,74,7,16,22,0,4,11,21,1,24,21,1,68,7,0,22,17,22,0,5,11,14,21,0,4,21,1,79,21,0,5,17,21,1,76,0,22,17,21,1,24,21,1,69,7,16,0,5,0,80,17,14,21,0,3,21,1,46,21,1,28,21,1,7,0,22,21,1,79,21,0,5,17,0,17,16,21,1,8,21,1,78,8,8,7,21,0,5,21,1,80,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,24,21,1,49,7,16,0,5,0,81,17,14,21,0,3,21,1,46,0,22,21,1,1,0,16,0,21,19,3,2,21,1,0,21,1,2,8,7,21,0,4,21,1,75,21,0,5,17,17,21,1,24,21,1,78,7,16,22,0,7,11,14,21,0,1,21,1,83,21,1,6,21,1,26,8,21,0,2,17,21,1,83,21,0,6,0,16,0,21,17,21,1,26,21,0,7,3,1,17,17,25,21,0,2,21,1,11,16,0,5,0,36,17,14,21,0,2,22,0,3,11,22,0,4,11,14,21,0,1,21,1,28,21,0,1,21,1,74,16,21,1,71,21,0,3,17,0,17,16,0,19,21,1,4,15,133,21,1,9,15,134,8,7,7,16,17,25,21,0,1,21,1,74,21,1,6,21,1,75,8,21,0,2,17,0,5,0,82,17,14,21,0,1,21,1,91,21,0,2,17,25,21,0,1,0,18,21,1,10,7,16,21,1,24,21,1,69,7,16,0,5,0,83,17,14,21,0,1,21,1,77,0,27,17,21,1,24,21,1,69,7,16,0,5,0,84,17,14,21,0,1,0,4,21,0,1,0,3,16,22,0,5,11,17,22,0,6,11,14,0,21,22,0,7,11,14,21,0,5,0,18,21,1,95,21,1,5,0,18,15,135,7,8,21,0,4,9,7,16,25,21,0,1,21,1,75,16,21,1,75,0,22,17,0,5,0,85,17,14,21,1,100,21,1,1,7,22,0,3,11,14,21,0,1,21,0,3,0,18,15,136,7,21,1,24,0,18,0,18,21,1,26,7,7,7,3,0,21,1,72,16,21,1,72,16,19,3,2,21,1,0,21,1,49,21,1,72,0,22,19,8,16,25,21,0,1,0,0,16,0,5,0,86,17,14,21,0,2,21,1,49,21,1,73,0,23,19,21,1,9,21,1,15,21,1,5,21,1,13,8,8,16,22,0,2,12,14,21,0,2,21,1,75,16,21,1,75,0,22,17,0,5,0,87,17,14,21,0,2,0,18,21,1,75,7,16,21,1,24,21,1,78,7,16,22,0,3,11,14,21,0,1,21,1,75,16,21,1,77,21,0,3,17,0,5,0,88,17,14,21,0,1,21,1,50,16,21,1,93,21,0,3,17,21,1,75,21,0,2,0,18,21,1,50,7,16,21,1,52,16,17,21,1,24,21,1,69,7,16,0,5,0,89,17,14,21,0,2,0,18,21,1,83,7,16,22,0,2,12,0,18,21,1,74,7,16,22,0,4,11,14,21,0,1,21,1,25,21,0,3,17,21,1,26,21,0,4,21,1,24,21,1,71,7,16,3,1,17,21,1,4,21,1,83,7,21,0,1,17,21,1,8,21,1,28,8,22,0,5,11,14,21,0,2,0,16,21,1,7,0,21,8,21,1,100,21,0,5,7,9,0,18,21,1,100,21,1,1,7,7,21,1,71,21,0,4,21,1,96,16,21,1,98,0,22,17,0,19,21,1,71,7,16,21,1,96,16,19,21,1,24,0,18,0,18,21,1,78,7,7,7,9,0,18,21,0,5,7,9,3,2,21,1,0,21,1,74,21,1,74,0,22,19,8,16,25,21,0,2,21,1,75,16,21,1,75,0,22,17,0,5,0,90,17,14,21,0,1,21,1,50,16,22,0,3,11,21,1,74,21,1,6,21,1,75,8,21,0,2,17,0,5,0,91,17,14,21,0,2,0,18,21,1,10,7,16,21,1,24,21,1,69,7,16,0,5,0,92,17,14,21,0,3,21,1,72,21,1,69,21,1,79,21,1,8,21,1,76,8,19,21,0,2,17,21,1,24,21,1,69,7,16,0,5,0,93,17,14,0,21,21,1,72,21,0,2,17,21,1,71,21,0,3,17,21,1,78,21,0,2,17,22,0,2,12,14,21,0,2,21,1,74,16,21,1,80,21,1,7,21,1,95,8,16,21,1,79,16,21,1,24,21,1,1,21,1,71,21,0,3,21,1,8,0,16,8,19,21,1,78,21,0,2,21,1,8,0,16,8,19,7,0,21,17,21,1,4,0,16,7,21,0,1,21,1,83,16,17,25,21,0,2,0,18,21,0,1,21,1,8,21,1,104,8,7,16,25,21,0,1,21,1,75,21,1,7,0,21,8,21,1,24,21,1,70,7,9,21,1,6,21,1,4,21,1,79,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,21,21,0,3,3,2,15,137,3,2,21,1,0,0,21,21,1,75,21,0,3,17,8,21,0,2,17,25,21,0,4,22,0,5,11,14,21,0,2,22,0,6,11,14,21,0,1,22,0,7,11,14,15,138,22,0,8,11,14,21,0,4,21,1,75,21,1,7,0,21,8,21,1,9,21,0,1,8,9,21,0,8,3,2,0,16,21,0,6,21,1,74,0,22,17,17,25,21,0,1,22,0,2,11,14,21,1,72,21,1,7,0,21,8,21,1,9,15,139,8,25,21,0,2,21,1,75,16,21,1,4,21,1,79,7,0,22,17,22,0,5,11,14,21,0,5,21,1,77,0,21,17,0,5,0,94,17,14,21,0,1,21,1,75,16,21,1,77,21,0,5,17,0,5,0,95,17,14,21,0,2,21,1,25,0,22,17,22,0,6,11,21,1,24,21,1,71,7,16,22,0,7,11,14,0,21,21,1,107,21,0,2,21,1,83,16,21,1,8,0,16,8,21,1,6,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,74,16,0,22,0,22,21,1,8,21,1,79,21,1,5,21,1,95,8,8,21,1,71,21,0,7,19,0,18,21,1,78,21,1,7,21,0,7,8,21,1,8,21,0,8,8,7,9,21,1,4,21,1,77,7,0,21,19,21,1,24,21,1,69,7,9,3,2,21,1,0,21,1,72,21,1,7,0,21,8,8,16,0,5,0,96,17,14,21,0,1,21,1,75,16,21,1,4,21,1,79,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,25,21,0,9,17,22,0,10,11,14,21,0,10,21,1,106,21,0,6,17,22,0,11,11,14,21,0,11,21,1,24,21,1,107,21,0,1,21,1,83,16,21,1,8,0,16,8,21,1,8,21,0,4,21,1,7,21,0,2,21,1,83,16,21,1,8,0,16,8,8,8,7,7,16,22,0,12,11,14,21,1,4,0,21,7,21,1,77,21,0,12,21,1,7,21,1,71,21,1,7,21,0,6,21,1,24,21,1,71,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,95,16,0,18,21,0,1,21,1,50,16,21,1,8,0,16,8,7,16,21,1,24,21,1,71,7,21,1,95,9,21,1,8,21,1,83,8,16,21,1,71,21,0,10,21,1,24,21,1,71,7,16,17,0,18,15,140,21,1,7,21,0,2,21,1,74,16,8,7,16,25,21,0,1,22,0,2,11,14,21,1,89,21,1,69,7,21,1,80,9,0,19,21,1,69,7,21,1,89,21,1,78,7,9,3,2,0,16,21,0,1,17,22,0,3,11,14,15,141,25,21,0,1,21,1,75,16,21,1,77,0,22,17,0,5,0,98,17,14,21,0,1,21,1,112,16,22,0,5,11,14,21,0,1,21,1,74,16,21,1,95,16,0,18,0,22,21,1,1,21,0,1,21,1,75,21,1,72,0,22,19,21,1,9,21,1,61,21,1,72,7,8,16,21,1,28,21,0,5,17,21,1,8,0,16,8,21,1,6,21,1,50,8,0,22,21,1,8,21,1,79,8,19,3,2,21,1,0,21,1,72,21,1,7,0,21,8,8,7,16,21,0,4,21,0,5,17,21,1,28,21,0,5,21,1,115,16,17,25,21,0,2,21,1,75,16,22,0,3,11,14,21,0,1,21,1,75,16,21,1,77,21,0,3,17,0,5,0,99,17,14,21,0,1,21,0,3,21,1,111,21,1,95,8,21,0,2,21,1,50,16,17,21,0,3,21,1,111,21,1,49,8,21,0,2,17,25,21,0,2,21,1,75,16,21,1,76,0,22,17,0,5,0,100,17,14,21,0,1,21,1,50,16,21,1,74,21,1,6,21,1,77,8,21,0,2,17,0,5,0,101,17,14,21,0,2,21,1,83,16,0,18,21,1,11,7,16,21,1,24,21,1,69,7,16,0,5,0,102,17,25,21,0,1,21,1,50,16,21,1,121,21,0,2,17,0,18,21,1,24,21,1,67,7,7,16,21,1,95,16,0,18,21,1,3,21,0,1,7,21,1,105,21,1,28,21,1,7,21,0,2,8,19,7,16,25,21,0,1,21,1,124,21,0,2,17,14,21,0,2,21,1,83,16,22,0,2,12,14,21,0,2,21,1,123,16,21,1,80,16,21,1,24,21,1,78,7,16,21,1,79,21,0,1,21,1,75,16,17,22,0,3,11,14,21,0,3,21,1,72,21,0,2,17,21,1,24,21,1,69,7,16,0,5,0,103,17,14,21,0,1,21,1,125,21,0,3,21,1,95,16,21,1,1,21,1,97,21,1,4,21,1,123,21,1,5,21,1,80,8,7,19,21,0,2,17,21,1,120,21,0,2,17,17,25,21,0,1,21,1,124,21,0,2,17,14,21,0,2,21,1,83,16,22,0,2,12,14,21,0,1,21,1,75,16,22,0,3,11,14,21,0,2,21,0,3,21,1,8,21,1,72,8,21,1,69,21,1,123,19,16,21,1,24,21,1,69,7,16,21,1,134,16,14,21,0,1,21,1,125,21,0,3,21,1,95,16,21,1,1,21,1,97,21,1,4,21,1,123,21,1,5,21,1,80,8,7,19,21,0,2,17,21,1,120,21,0,2,17,21,1,115,16,17,25,21,0,1,21,1,122,21,1,7,21,0,2,8,21,1,129,21,1,8,21,1,61,21,1,119,7,8,9,21,1,83,21,1,3,0,23,7,21,1,120,21,1,74,19,19,21,1,6,21,1,122,8,21,0,2,17,25,21,0,1,15,142,21,0,5,21,1,132,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,21,0,4,21,0,2,17,22,0,6,11,14,21,0,6,21,0,5,21,0,2,17,21,1,49,21,0,1,17,21,1,135,16,14,21,0,6,25,21,0,1,21,1,75,16,21,1,75,0,22,17,21,1,134,16,14,21,0,1,21,1,120,16,22,0,3,11,14,21,0,3,0,18,21,1,11,7,16,21,1,24,21,1,69,7,16,21,1,134,16,14,21,0,3,0,3,16,22,0,4,11,14,0,22,21,1,77,21,0,4,17,21,1,24,21,1,69,7,16,21,1,135,16,14,21,0,4,21,1,80,16,21,1,97,16,22,0,5,11,14,21,0,5,21,1,46,0,27,7,16,21,1,120,21,0,1,21,1,46,21,1,74,7,16,21,1,97,16,17,21,1,131,21,0,5,21,1,120,21,0,3,17,21,1,112,16,17,25,21,0,2,21,1,75,16,21,1,75,0,22,17,21,1,134,16,14,21,0,2,0,18,21,1,11,7,16,21,1,24,21,1,69,7,16,21,1,134,16,14,21,0,1,21,1,120,21,1,6,21,1,131,21,1,7,21,1,112,8,8,21,0,2,21,1,121,16,17,25,21,0,1,0,0,16,21,1,135,16,14,21,0,1,21,1,75,16,21,1,75,0,21,17,21,1,135,16,14,21,0,1,21,1,132,16,25,21,0,2,21,1,75,21,1,6,21,1,79,8,21,0,1,17,22,0,3,11,14,21,0,3,0,22,21,1,8,21,1,77,8,21,1,69,21,1,77,21,1,7,0,21,8,19,16,21,1,135,16,14,21,0,2,0,22,21,1,74,3,2,21,1,133,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,74,16,21,1,77,21,0,4,17,21,1,135,16,14,21,0,1,21,1,131,21,1,93,21,1,7,21,0,4,8,3,2,21,1,133,21,0,3,8,16,21,1,49,21,0,2,17,21,1,135,16,14,21,0,1,21,1,94,21,0,4,17,25,21,0,1,21,1,74,16,21,1,75,0,23,17,21,1,135,16,14,21,0,1,21,1,131,16,21,1,49,21,0,2,17,21,1,135,16,14,21,0,1,21,1,131,0,22,17,25,21,0,1,21,1,74,16,21,1,75,0,22,17,21,1,135,16,14,21,0,1,21,1,131,16,25,21,0,1,21,1,75,16,21,1,75,0,22,17,21,1,134,16,14,21,0,1,0,18,21,1,11,7,16,21,1,24,21,1,69,7,16,21,1,134,16,14,21,0,1,21,1,94,21,1,7,0,22,8,21,1,77,21,1,94,21,1,7,0,27,8,19,21,1,24,21,1,69,7,9,16,21,1,135,16,14,21,0,1,0,3,16,25,21,1,4,21,1,4,0,21,7,0,5,0,106,19,3,1,21,1,120,21,0,1,21,1,131,0,22,17,17,7,21,1,132,21,1,72,21,1,122,21,0,1,21,1,131,0,21,17,19,21,1,132,9,19,25,21,0,1,21,1,139,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,21,22,0,7,11,22,0,8,11,14,21,0,6,0,21,21,1,110,15,143,8,16,14,21,0,1,22,0,9,11,14,15,144,22,0,10,11,14,21,0,7,21,0,10,21,1,1,21,0,4,21,0,2,19,7,16,22,0,11,11,14,21,0,8,21,1,79,16,21,0,10,21,1,1,21,1,140,21,0,4,7,21,0,2,19,7,16,22,0,12,11,14,21,0,6,0,21,21,1,110,21,1,3,21,0,11,21,0,12,3,2,7,21,1,132,0,21,21,1,8,21,1,72,8,19,21,1,132,21,1,66,19,8,16,25,21,0,1,21,1,15,21,1,6,0,18,21,0,4,7,8,21,0,2,17,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,81,16,25,0,22,0,7,21,1,6,17,22,1,6,12,14,21,0,1,0,16,21,1,6,17,25,21,1,8,21,1,7,21,1,5,0,16,21,0,1,17,17,22,1,8,12,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,0,17,16,21,2,24,0,8,21,2,7,21,0,1,0,14,16,21,2,8,0,16,8,0,12,21,0,5,21,2,8,0,16,8,19,8,7,0,22,17,0,5,0,32,17,14,21,0,5,21,2,24,0,8,7,0,22,17,0,17,16,0,18,21,0,1,0,15,16,21,2,8,0,16,8,21,0,4,21,0,2,0,15,16,21,2,8,0,16,8,19,7,16,0,15,21,0,5,17,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,22,0,6,11,14,21,0,1,0,14,16,22,0,7,11,14,21,0,6,0,17,16,21,2,24,0,8,21,2,7,21,0,7,21,2,8,0,16,8,0,12,21,0,5,21,2,8,0,16,8,19,8,7,0,22,17,0,5,0,33,17,14,21,0,6,0,7,21,0,1,0,12,16,17,0,17,16,21,2,24,0,8,21,2,7,0,6,21,2,7,21,0,6,8,21,2,4,0,16,7,21,0,7,19,8,7,0,22,17,22,0,8,11,14,21,0,2,0,15,16,22,0,9,11,14,21,0,1,0,15,16,22,0,10,11,14,21,0,8,0,17,21,2,6,0,18,21,2,3,21,0,10,7,0,16,0,6,21,2,7,0,8,21,2,7,21,0,8,8,8,19,21,0,4,21,0,9,21,2,8,0,16,8,19,7,8,21,0,9,21,2,22,16,17,0,15,16,0,15,21,0,7,17,25,21,0,1,21,2,30,21,0,4,7,21,0,2,17,25,21,0,1,0,18,15,145,21,0,2,7,7,16,25,21,0,2,0,18,15,146,21,0,1,7,7,16,25,21,1,6,0,8,0,23,17,0,13,21,0,1,21,2,24,21,2,19,7,16,22,1,10,12,0,7,21,0,1,21,2,24,21,2,20,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,4,0,21,7,21,2,18,0,21,21,2,107,21,1,8,21,2,8,0,16,8,21,2,6,21,0,4,8,7,21,1,7,17,19,22,0,5,11,14,21,2,1,21,1,6,3,2,21,2,0,0,13,21,2,7,21,1,6,8,8,22,0,6,11,14,0,21,0,12,21,1,6,17,0,6,21,1,6,17,0,2,0,23,17,21,2,20,16,22,0,7,11,0,17,16,0,18,21,2,1,0,6,0,22,19,0,7,21,0,7,19,0,10,0,23,19,7,16,21,2,24,15,147,7,21,1,6,0,17,16,17,25,21,0,1,0,18,21,2,11,7,16,21,2,24,0,8,7,0,22,17,0,5,0,36,17,14,0,22,0,7,21,1,3,17,22,0,3,11,14,21,2,1,0,7,21,0,3,19,21,2,4,0,16,7,21,1,3,0,17,16,0,18,0,7,21,2,7,21,0,3,8,7,16,0,19,21,2,1,21,2,4,0,16,7,21,0,1,19,0,12,0,21,19,0,8,0,7,19,0,6,21,2,1,19,7,16,19,22,0,4,11,14,21,0,1,0,19,0,6,7,16,21,2,8,0,16,8,22,0,5,11,14,0,21,21,0,4,16,22,0,6,11,21,0,5,16,22,0,7,11,14,21,0,3,21,0,5,16,0,17,16,0,18,15,148,7,16,25,21,0,1,0,7,21,1,3,17,0,17,16,0,18,0,6,21,2,7,21,0,1,8,7,16,25,21,0,1,3,1,25,21,0,1,14,21,1,9,0,16,21,1,12,0,16,21,1,14,17,17,22,0,3,11,14,21,1,14,0,6,0,22,17,22,1,14,12,21,1,13,16,22,1,15,12,14,21,0,3,25,21,0,1,0,12,21,1,15,17,25,21,0,1,0,12,21,2,7,21,1,4,8,0,7,0,22,19,21,2,9,15,149,8,16,14,21,1,5,0,16,0,22,0,6,21,1,3,17,22,1,3,12,17,25,21,0,2,22,0,5,11,14,21,0,4,22,0,6,11,14,21,0,1,0,18,15,150,7,16,25,21,0,2,22,0,3,11,14,21,1,9,0,16,21,0,1,17,22,0,4,11,14,21,1,5,0,18,0,16,21,2,7,21,0,1,8,7,16,22,0,5,11,14,21,0,4,0,17,16,0,18,21,2,3,21,0,5,7,0,16,0,8,21,2,7,21,0,3,8,19,7,16,22,0,6,11,14,21,0,3,0,17,16,0,18,21,2,2,7,21,0,6,17,0,18,21,2,1,7,21,1,10,0,17,16,17,0,15,16,21,2,46,0,12,7,21,0,5,17,21,2,24,0,8,7,0,22,17,0,5,0,48,17,14,21,0,6,21,2,35,16,22,0,7,11,14,21,0,7,21,2,22,16,0,17,16,0,18,21,0,6,21,1,8,0,6,7,0,21,17,21,2,28,21,0,7,17,21,2,8,0,16,8,21,2,8,0,7,8,7,16,22,0,8,11,14,21,0,8,0,18,21,2,1,7,21,1,12,17,21,2,46,0,6,7,21,0,7,0,18,21,0,6,21,2,8,0,16,8,21,2,8,0,8,8,7,21,1,12,17,17,22,1,12,12,14,21,0,7,0,18,0,6,21,2,7,21,0,4,21,2,8,0,8,8,8,7,21,1,11,17,22,1,11,12,14,21,0,4,0,8,22,1,10,13,25,21,0,4,0,16,21,0,1,17,0,16,21,0,2,17,25,21,2,28,21,2,7,21,1,7,0,7,21,1,6,17,0,17,16,0,18,0,6,21,2,7,21,1,7,8,7,16,8,22,0,3,11,14,21,1,5,0,16,0,21,17,21,0,3,16,22,0,4,11,14,21,1,5,0,18,21,0,3,21,2,46,0,12,7,21,0,4,19,21,2,24,0,8,7,9,7,16,21,2,24,0,8,7,0,22,17,0,5,0,49,17,14,21,0,4,21,2,24,0,8,7,16,22,0,5,11,0,17,16,0,15,21,0,4,17,22,0,6,11,14,21,0,6,0,18,21,2,2,7,21,0,1,17,21,1,13,21,0,6,0,18,0,6,21,2,7,0,8,21,2,7,21,0,5,8,8,7,21,0,2,17,17,25,21,0,2,0,12,16,21,2,16,0,22,17,0,5,21,1,6,17,14,21,0,2,21,2,12,16,22,0,2,12,14,21,0,2,0,18,21,2,10,7,16,21,2,24,0,8,7,0,22,17,0,5,21,1,7,17,14,21,0,2,21,2,22,16,22,0,3,11,14,21,0,1,21,2,50,16,21,2,22,21,2,8,21,2,18,8,21,2,9,15,151,8,21,0,3,17,22,0,4,11,14,15,152,22,0,5,11,14,0,21,21,2,17,16,22,0,6,11,14,0,22,22,0,7,11,14,15,153,22,0,8,11,14,0,21,22,0,9,11,14,21,0,3,0,17,16,0,18,21,0,2,21,2,8,0,16,8,15,154,21,1,4,15,155,7,21,0,8,21,2,2,19,3,2,21,2,0,21,1,3,8,21,0,4,21,2,8,0,16,8,19,7,16,22,0,10,11,14,21,0,1,21,2,15,16,0,15,21,2,7,21,0,4,8,15,156,3,2,21,2,0,21,0,6,0,12,16,21,2,17,0,21,17,8,16,25,21,0,1,0,12,16,0,13,21,1,3,17,0,5,0,63,17,14,21,0,2,0,18,21,2,11,7,16,21,2,24,0,8,7,16,0,5,0,64,17,14,21,0,1,21,2,50,16,22,0,3,11,14,21,1,3,0,17,16,0,18,21,0,2,21,2,8,0,16,8,0,7,21,0,3,21,2,8,0,16,8,19,0,6,0,22,19,7,16,22,0,4,11,14,21,0,4,0,18,0,13,21,2,7,0,21,8,7,16,21,2,24,0,8,7,16,0,5,0,65,17,14,21,0,3,21,2,28,21,1,3,0,7,21,2,7,21,2,22,8,21,0,3,17,0,17,16,0,18,0,6,21,2,7,21,1,3,8,7,16,17,22,0,5,11,21,2,24,0,8,7,0,22,17,22,0,6,11,14,0,22,0,7,21,1,3,17,15,157,16,21,2,26,21,0,6,3,1,17,0,19,0,8,7,16,21,2,38,16,22,0,7,11,14,21,0,2,21,2,1,21,2,46,15,158,7,21,0,7,19,21,2,24,0,18,0,6,7,7,9,21,2,6,0,18,0,6,7,8,21,0,4,17,0,22,21,2,8,0,12,8,0,7,0,22,19,21,2,9,21,2,4,0,17,0,15,21,0,5,19,21,2,8,0,18,0,6,7,8,7,8,21,0,6,17,0,18,21,0,1,0,15,16,21,2,8,0,16,8,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,66,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,12,16,21,2,16,0,22,17,0,5,0,67,17,14,21,0,1,21,2,50,16,21,2,22,21,2,6,0,13,8,21,0,2,17,0,5,0,68,17,14,21,0,2,21,2,22,16,22,0,3,11,14,21,0,2,0,15,16,21,2,8,0,16,8,22,0,4,11,14,21,0,1,21,0,3,21,2,17,0,21,17,21,2,9,15,159,8,0,21,17,25,21,0,1,21,2,75,21,0,4,17,25,21,0,1,21,2,46,21,2,1,0,22,3,2,21,2,0,21,2,2,8,7,21,1,4,17,21,2,24,21,2,71,7,16,22,0,3,11,14,21,0,3,21,2,72,0,21,17,0,5,0,74,17,14,21,1,4,21,2,74,16,0,17,16,21,2,71,21,1,4,17,21,2,24,21,2,78,7,16,22,0,4,11,14,21,1,3,0,16,21,0,4,17,21,2,142,16,22,0,5,11,14,0,30,21,2,72,21,0,5,17,0,5,0,75,17,14,21,2,75,21,2,7,21,2,67,8,0,5,0,76,19,21,2,2,21,2,1,19,22,0,6,11,14,21,0,3,21,2,63,21,1,7,17,21,0,6,21,2,67,21,2,68,3,3,21,2,0,21,0,5,21,2,67,0,23,17,8,16,22,0,7,11,14,21,1,3,21,2,46,21,2,1,21,0,7,3,2,21,2,0,21,2,2,8,7,21,1,4,17,22,1,3,12,14,21,0,7,21,2,71,21,0,3,17,21,0,5,21,2,75,0,25,17,21,2,9,21,2,72,21,2,7,21,1,7,8,21,2,9,15,160,8,8,16,25,21,1,8,0,17,16,0,18,21,2,2,7,21,2,7,0,1,8,15,161,3,2,21,2,0,21,1,7,21,2,72,0,21,17,8,21,0,1,17,25,21,0,1,21,2,11,16,0,5,0,77,17,14,21,0,1,0,17,16,25,21,0,1,21,2,75,16,21,2,75,0,22,17,0,5,0,78,17,14,21,0,1,0,18,21,1,3,7,16,21,2,24,0,18,21,2,26,21,2,7,21,2,83,8,7,7,3,0,21,2,72,16,17,25,21,1,9,21,1,7,21,2,78,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,46,21,0,5,7,21,2,2,21,2,5,0,18,21,0,1,21,2,8,21,0,5,8,7,8,21,2,1,21,2,5,0,18,21,2,1,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,0,21,2,49,21,2,6,21,2,13,8,21,2,76,21,0,4,21,2,68,0,21,17,19,21,2,70,0,21,21,2,76,21,0,4,17,21,2,69,21,1,7,17,19,21,2,82,0,23,19,21,2,24,21,2,78,21,2,7,0,23,21,2,8,21,2,71,8,8,7,9,8,21,0,2,17,25,21,0,1,21,2,50,16,21,2,28,21,0,2,0,17,16,17,22,0,3,11,14,21,0,1,21,2,25,21,0,2,17,22,0,4,11,21,2,24,21,2,71,7,16,22,0,5,11,14,21,0,3,21,2,24,21,2,71,7,16,0,17,16,0,18,21,2,1,21,2,71,21,0,5,19,21,2,78,21,0,5,0,17,16,21,2,83,21,0,4,17,19,21,2,5,0,18,21,0,1,21,2,83,16,21,2,8,0,16,8,7,8,7,16,21,2,83,21,0,3,17,25,21,0,2,21,2,75,21,1,4,17,25,21,1,3,21,2,78,22,1,4,13,14,21,0,1,21,2,78,0,22,17,25,21,0,1,14,21,1,6,0,16,21,1,7,17,21,2,1,0,22,21,2,78,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,83,16,21,1,3,16,0,18,21,0,1,21,2,50,16,21,2,95,16,21,2,83,16,21,2,8,21,2,28,8,7,16,25,21,0,1,21,2,74,21,2,6,21,2,79,8,21,0,2,17,21,2,71,16,22,0,3,11,14,21,0,1,21,2,74,21,2,6,21,2,67,8,21,0,2,17,22,0,4,11,14,21,0,1,15,162,21,2,7,21,2,74,21,2,78,21,0,4,21,2,95,16,21,2,78,0,22,17,21,2,79,16,19,8,21,2,6,15,163,8,21,0,2,17,22,0,5,11,14,21,0,5,21,0,3,3,2,25,21,0,2,22,0,3,11,14,21,0,1,22,0,4,11,14,15,164,21,1,7,3,2,21,2,0,21,2,75,21,2,7,21,1,6,8,8,22,0,5,11,14,0,21,21,0,5,16,25,15,165,22,0,3,11,14,0,27,21,0,3,0,22,21,2,78,21,0,1,17,17,21,2,78,0,22,17,25,21,0,2,21,2,108,21,0,1,21,2,8,21,1,13,8,7,16,25,21,0,2,21,2,75,16,21,2,4,21,2,79,7,0,22,17,22,0,3,11,14,21,0,3,21,2,77,0,21,17,0,5,0,97,17,14,21,0,1,21,2,15,16,21,2,1,21,2,5,21,0,3,21,2,111,0,21,8,8,21,2,1,21,0,3,21,2,111,21,2,72,8,3,2,21,2,0,21,0,3,21,2,72,0,21,17,8,21,2,6,0,18,21,2,50,7,8,21,1,3,9,3,2,21,2,0,21,0,2,21,2,74,16,21,2,72,0,21,17,8,15,166,3,2,21,2,0,21,2,83,21,2,5,21,2,74,8,21,2,72,0,26,19,21,2,6,21,2,69,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,10,16,0,5,0,107,17,14,21,0,1,21,2,67,21,1,8,17,22,1,8,12,14,21,0,1,21,2,68,21,1,7,17,22,1,7,12,25,21,0,1,21,2,78,0,21,17,21,2,95,16,21,2,120,21,1,9,3,1,17,0,19,21,2,2,21,2,5,21,0,4,8,7,16,25,21,0,1,21,2,2,21,0,4,17,25,21,0,4,21,2,2,21,0,1,17,25,21,0,2,22,0,3,11,0,7,16,22,0,4,11,14,0,21,22,0,5,11,22,0,6,11,22,0,7,11,14,0,25,22,0,8,11,14,21,0,1,0,22,0,12,21,2,7,17,0,7,0,22,17,21,3,9,0,18,0,8,21,3,7,21,2,7,8,7,8,16,21,3,8,0,16,8,21,3,6,21,1,5,8,22,0,9,11,14,21,0,9,0,21,0,22,0,23,3,4,22,0,10,11,14,0,6,15,167,3,2,0,16,21,0,3,0,13,0,26,17,17,22,0,11,11,14,15,168,22,0,12,11,14,15,169,15,170,21,0,12,3,3,21,3,0,15,171,8,22,0,13,11,14,21,0,1,0,18,21,0,1,21,3,8,15,172,8,7,16,25,21,1,6,21,1,7,0,12,21,0,1,17,21,3,9,15,173,8,16,25,21,0,1,22,2,4,12,21,3,4,0,16,7,21,2,6,17,22,2,5,12,14,0,27,22,2,3,12,25,21,1,5,22,0,3,11,14,21,0,1,21,1,6,22,1,5,13,14,21,0,3,25,21,0,1,21,3,26,21,0,1,21,3,22,16,0,7,21,0,2,17,0,17,21,3,5,0,18,0,22,7,8,16,17,25,21,0,1,0,18,0,6,7,21,0,2,0,18,21,0,4,21,3,8,0,8,8,7,16,17,25,21,0,1,0,22,21,3,8,0,12,8,0,7,0,22,19,21,3,9,21,1,5,21,0,2,7,21,3,7,0,17,8,8,21,1,7,17,21,1,5,21,0,2,0,8,21,1,7,17,7,22,1,6,13,14,0,22,22,1,7,12,14,21,0,1,21,3,22,16,25,21,0,2,0,8,22,1,7,13,14,21,0,2,25,0,22,22,1,9,12,25,21,1,3,0,7,21,1,4,21,3,22,16,17,0,17,16,0,18,0,6,21,3,7,21,1,3,8,21,3,4,0,16,7,21,1,4,19,7,16,22,0,3,11,21,3,26,22,1,10,13,14,21,0,3,21,3,24,0,8,7,21,1,7,17,0,12,21,3,7,0,22,8,0,7,0,22,19,21,3,9,15,174,8,16,14,21,0,1,0,15,16,21,3,8,0,16,8,22,0,4,11,14,21,1,9,21,3,1,21,3,9,15,175,8,16,14,21,1,6,0,15,21,1,10,17,0,18,21,0,4,7,16,25,21,0,1,0,17,16,0,18,0,7,21,3,7,21,0,1,8,21,3,4,0,16,7,21,1,3,19,7,16,25,21,0,1,0,17,16,0,18,0,8,21,3,7,21,0,2,8,7,16,25,21,0,1,0,22,0,7,21,1,3,17,21,3,17,21,0,2,17,21,3,9,21,3,61,21,0,0,21,3,7,21,0,2,0,6,0,22,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,21,3,79,21,0,1,17,0,17,16,0,18,21,2,6,0,1,16,7,16,21,3,26,22,2,6,13,14,21,2,7,25,21,0,1,21,3,66,21,2,7,17,0,18,21,2,6,21,3,8,0,16,8,7,16,25,21,0,2,0,18,21,0,1,21,3,8,0,16,8,7,16,25,21,0,1,21,3,75,21,0,2,17,0,19,21,3,69,7,16,21,3,24,21,3,78,7,16,22,0,3,11,14,21,0,3,21,3,95,16,0,18,21,0,2,21,3,8,0,16,8,7,16,21,3,24,21,3,71,7,16,22,0,4,11,14,21,0,3,21,3,73,21,3,7,21,1,4,8,21,3,9,21,0,2,21,0,1,3,2,21,3,8,21,3,46,0,16,7,8,21,3,5,15,176,8,8,16,14,21,0,4,25,21,1,4,21,3,78,21,3,7,21,0,1,8,21,3,6,21,2,5,8,21,1,3,17,21,3,75,21,3,7,0,21,8,21,3,9,21,0,1,21,3,78,0,22,17,21,3,5,21,1,5,8,8,16,25,21,0,1,0,22,21,3,8,21,3,73,8,21,3,9,15,177,8,21,0,2,17,25,21,0,2,21,3,113,16,21,3,96,16,22,0,3,11,14,21,0,1,21,3,112,21,0,2,21,3,28,21,0,3,17,17,21,3,4,21,3,79,7,0,22,17,21,3,68,0,21,17,21,3,4,21,3,28,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,111,21,3,49,8,21,0,2,21,3,28,21,0,4,17,17,21,2,2,21,3,9,21,3,71,21,3,7,21,3,79,21,3,7,21,0,4,8,8,21,3,78,21,3,2,19,8,21,0,2,21,3,74,16,17,25,21,0,1,21,1,8,0,7,0,22,17,21,4,9,21,1,9,0,7,0,22,19,21,4,9,15,178,8,8,0,22,0,7,21,0,1,17,17,25,21,0,2,0,6,21,1,3,17,22,1,4,12,14,21,0,1,0,6,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,0,6,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,0,13,21,3,6,17,22,1,8,12,14,21,1,6,21,1,11,16,14,21,1,7,21,1,13,21,1,4,17,25,21,0,2,0,6,0,22,17,22,1,4,12,0,12,21,1,6,17,0,8,0,23,17,0,6,22,1,8,13,14,21,0,2,25,21,0,1,0,6,0,22,17,22,1,7,12,0,12,21,1,5,17,0,6,22,1,8,13,14,21,0,1,25,21,0,1,21,1,10,21,4,0,21,1,8,8,21,0,2,17,25,21,0,1,0,16,21,1,7,21,1,13,21,1,4,17,17,25,0,22,0,6,21,0,1,17,21,2,4,16,22,2,6,12,21,2,5,16,22,2,7,12,14,21,2,6,25,21,0,1,0,17,16,21,2,5,21,0,1,7,22,2,6,13,25,21,4,3,21,0,1,0,1,16,7,21,1,4,3,2,21,4,0,0,13,21,4,7,0,21,8,8,22,1,4,12,25,21,0,1,21,4,24,21,4,79,7,16,21,4,71,16,22,2,3,12,14,21,0,1,21,4,24,21,4,67,7,16,21,4,71,21,1,4,17,22,1,4,12,25,0,23,21,4,63,21,0,2,17,21,4,67,16,22,0,3,11,21,4,78,21,0,1,17,22,0,4,11,21,3,2,16,22,0,5,11,14,21,0,1,21,0,4,3,2,0,16,21,0,5,17,21,2,3,21,0,2,21,4,66,0,23,17,21,4,71,21,0,5,17,21,4,78,21,0,3,17,17,25,21,0,1,14,0,23,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25] + [15,1,22,0,0,11,14,15,2,22,0,1,11,14,15,3,0,20,15,4,8,22,0,2,11,14,15,5,22,0,3,11,14,15,6,22,0,4,11,14,15,7,22,0,5,11,14,15,8,22,0,6,11,14,15,9,22,0,7,11,14,15,10,22,0,8,11,14,15,11,22,0,9,11,14,0,0,0,12,0,21,19,22,0,10,11,14,0,21,0,12,21,0,7,0,11,8,3,2,21,0,0,0,0,0,12,0,22,19,8,22,0,11,11,14,0,21,0,12,21,0,7,0,11,8,0,8,0,13,21,0,7,0,21,8,19,3,2,21,0,0,0,0,0,12,0,22,19,8,22,0,12,11,14,15,12,0,15,3,2,21,0,0,21,0,10,8,22,0,13,11,14,15,13,0,20,15,14,8,22,0,14,11,14,15,15,22,0,15,11,14,21,0,10,0,7,0,22,19,21,0,9,21,0,15,8,22,0,16,11,14,21,0,4,0,13,7,22,0,17,11,14,21,0,17,0,7,0,22,19,0,20,21,0,15,8,22,0,18,11,14,0,13,0,7,0,22,19,22,0,19,11,14,15,16,0,16,21,0,19,19,0,20,0,11,8,22,0,20,11,14,15,17,0,16,21,0,18,19,0,20,0,7,21,0,5,21,0,20,21,0,5,0,7,8,8,8,22,0,21,11,14,0,7,21,0,1,3,2,21,0,0,0,13,21,0,7,0,21,8,8,22,0,22,11,14,0,22,0,14,0,16,0,21,19,3,2,21,0,0,0,12,21,0,18,0,21,19,8,22,0,23,11,14,15,18,22,0,24,11,14,21,0,24,22,0,25,11,14,0,14,21,0,8,15,19,8,22,0,26,11,14,15,20,22,0,27,11,14,15,21,15,22,3,2,21,0,0,21,0,1,21,0,5,0,12,8,0,12,0,22,19,8,22,0,28,11,14,21,0,28,22,0,29,11,14,15,23,22,0,30,11,14,15,24,22,0,31,11,14,0,13,0,7,21,0,17,19,22,0,32,11,14,0,22,0,15,0,16,0,21,19,21,0,8,0,13,0,8,0,23,19,0,7,0,22,19,15,25,3,2,21,0,0,21,0,1,21,0,5,21,0,10,8,8,8,3,2,21,0,0,21,0,1,21,0,5,0,14,8,21,0,25,0,8,7,0,22,19,21,0,18,0,21,19,8,22,0,33,11,14,21,0,32,21,0,33,21,0,4,21,0,33,7,0,7,9,3,2,21,0,0,21,0,2,21,0,5,21,0,10,8,8,15,26,3,3,21,0,0,21,0,10,21,0,6,0,6,8,8,22,0,34,11,14,15,27,22,0,35,11,14,15,28,22,0,36,11,14,0,12,21,0,18,0,21,19,21,0,9,15,29,8,22,0,37,11,14,0,12,21,0,18,0,21,19,21,0,9,15,30,8,22,0,38,11,14,15,31,22,0,39,11,14,15,32,22,0,40,11,14,15,33,22,0,41,11,14,15,34,22,0,42,11,14,15,35,22,0,43,11,14,15,36,22,0,44,11,14,15,37,22,0,45,11,14,15,38,22,0,46,11,14,15,39,22,0,47,11,14,21,0,10,21,0,6,0,12,8,0,21,3,2,21,0,1,21,0,5,21,0,10,8,0,12,3,2,0,12,21,0,6,0,12,8,0,21,3,2,0,14,21,0,6,21,0,47,0,12,7,8,21,0,25,0,8,7,0,22,19,0,21,3,2,15,40,3,5,21,0,25,15,41,7,16,22,0,48,11,14,0,21,15,42,3,2,21,0,0,21,0,10,8,22,0,49,11,14,21,0,48,0,20,21,0,49,8,22,0,50,11,14,21,0,48,0,7,0,22,19,0,20,3,0,0,14,3,2,21,0,0,21,0,10,8,8,22,0,51,11,14,21,0,10,21,0,9,0,15,21,0,5,21,0,23,8,21,0,18,0,21,19,21,0,9,15,43,8,8,22,0,52,11,14,15,44,21,0,9,15,45,15,46,3,2,21,0,0,0,22,0,18,0,12,0,12,0,22,19,7,21,0,25,0,8,7,0,22,19,0,7,0,22,19,3,2,21,0,0,0,12,0,12,0,22,19,8,8,8,22,0,53,11,14,15,47,22,0,54,11,14,21,0,54,0,55,21,0,22,21,0,8,0,12,8,0,7,0,22,19,15,48,3,3,7,22,0,55,11,14,21,0,54,0,56,0,12,21,0,7,0,21,8,0,7,0,22,19,15,49,3,3,7,22,0,56,11,14,15,50,22,0,57,11,14,15,51,22,0,58,11,14,15,52,22,0,59,11,14,15,53,22,0,60,11,14,15,54,22,0,61,11,14,15,55,22,0,62,11,14,15,56,22,0,63,11,14,21,0,31,0,9,7,22,0,64,11,14,21,0,31,0,10,7,22,0,65,11,14,21,0,4,21,0,64,21,0,8,21,0,65,8,7,0,20,0,23,21,0,64,16,21,0,8,21,0,65,8,8,22,0,66,11,14,21,0,31,15,57,0,20,21,0,22,8,7,22,0,67,11,14,21,0,31,15,58,0,20,21,0,20,8,7,22,0,68,11,14,21,0,31,15,59,0,20,0,7,21,0,5,21,0,68,21,0,5,0,7,8,8,8,7,22,0,69,11,14,21,0,31,0,8,7,0,20,21,0,43,0,21,7,8,22,0,70,11,14,21,0,31,0,8,0,7,0,6,19,7,0,20,21,0,43,0,22,7,8,22,0,71,11,14,21,0,31,0,8,0,20,21,0,19,0,7,21,0,18,19,21,0,7,0,21,8,8,7,22,0,72,11,14,21,0,31,21,0,17,0,7,0,22,19,7,0,20,21,0,15,8,22,0,73,11,14,21,0,31,0,13,0,7,0,22,19,7,0,20,21,0,52,8,22,0,74,11,14,21,0,31,0,12,0,7,0,22,19,7,0,20,21,0,23,8,22,0,75,11,14,21,0,31,0,12,7,0,20,0,12,8,22,0,76,11,14,21,0,31,21,0,17,7,0,20,21,0,3,0,21,7,0,5,0,69,19,8,22,0,77,11,14,21,0,31,0,13,7,0,20,21,0,3,0,21,7,0,5,0,70,19,8,22,0,78,11,14,21,0,31,0,6,7,22,0,79,11,14,21,0,31,0,7,7,22,0,80,11,14,21,0,80,21,0,79,0,22,19,22,0,81,11,14,21,0,79,0,21,3,2,21,0,80,0,21,3,2,21,0,72,0,22,3,2,21,0,64,0,22,3,2,21,0,65,0,22,3,2,21,0,66,0,22,3,2,21,0,70,0,22,3,2,21,0,71,0,21,3,2,21,0,81,0,22,3,2,21,0,67,0,21,3,2,21,0,68,0,29,3,2,21,0,69,0,28,3,2,21,0,73,0,21,3,2,21,0,78,0,22,3,2,21,0,76,0,22,3,2,21,0,77,0,22,3,2,21,0,74,0,21,3,2,21,0,75,0,21,3,2,3,18,21,0,25,15,60,7,21,0,4,0,21,7,0,5,0,71,19,3,1,0,16,0,21,17,17,22,0,82,11,14,15,61,22,0,83,11,14,0,15,0,20,21,0,13,8,22,0,84,11,14,15,62,22,0,85,11,14,15,63,22,0,86,11,14,15,64,22,0,87,11,14,15,65,22,0,88,11,14,15,66,22,0,89,11,14,21,0,89,22,0,90,11,14,21,0,84,21,0,6,21,0,27,8,15,67,3,2,21,0,0,21,0,76,21,0,73,0,22,19,21,0,6,21,0,71,8,8,22,0,91,11,14,21,0,29,21,0,7,21,0,36,8,22,0,92,11,14,21,0,75,21,0,76,0,21,19,21,0,80,0,22,19,21,0,63,15,68,15,69,3,2,21,0,0,21,0,2,21,0,5,21,0,10,8,8,8,22,0,93,11,14,21,0,55,0,20,21,0,41,8,22,0,94,11,14,21,0,56,0,20,21,0,42,8,22,0,95,11,14,21,0,61,0,20,21,0,85,8,22,0,96,11,14,0,21,21,0,63,21,0,40,8,0,20,21,0,39,8,22,0,97,11,14,21,0,93,0,20,21,0,36,8,22,0,98,11,14,21,0,58,0,20,21,0,58,21,0,7,21,0,60,8,8,22,0,99,11,14,21,0,59,0,20,21,0,59,21,0,7,21,0,60,8,8,22,0,100,11,14,15,70,22,0,101,11,14,15,71,22,0,102,11,14,15,72,22,0,103,11,14,15,73,22,0,104,11,14,21,0,104,15,74,3,2,21,0,0,21,0,2,21,0,5,21,0,84,21,0,5,0,18,21,0,10,7,8,8,21,0,25,21,0,71,7,9,8,22,0,105,11,14,21,0,105,21,0,7,21,0,84,21,0,1,3,2,21,0,0,21,0,10,8,8,22,0,106,11,14,15,75,22,0,107,11,14,15,76,22,0,108,11,14,15,77,22,0,109,11,14,15,78,22,0,110,11,14,21,0,87,22,0,111,11,14,21,0,88,22,0,112,11,14,21,0,110,21,0,34,7,0,20,0,21,21,0,35,21,0,34,8,8,22,0,113,11,14,21,0,110,21,0,4,21,0,34,7,7,0,20,0,22,21,0,35,21,0,4,21,0,34,7,8,8,22,0,114,11,14,15,79,22,0,115,11,14,0,4,21,0,7,21,0,47,0,22,7,8,22,0,116,11,14,15,80,22,0,117,11,14,21,0,117,21,0,1,21,0,5,0,19,21,0,79,7,8,21,0,4,21,0,80,7,0,22,19,21,0,4,21,0,29,7,21,0,4,21,0,98,21,0,5,21,0,113,21,0,5,21,0,116,8,8,7,19,7,22,0,118,11,14,15,81,22,0,119,11,14,21,0,14,21,0,5,21,0,74,8,22,0,120,11,14,21,0,91,0,20,21,0,53,8,22,0,121,11,14,21,0,103,0,20,21,0,102,8,22,0,122,11,14,21,0,115,0,22,7,0,20,21,0,118,8,22,0,123,11,14,21,0,4,21,0,115,0,21,7,7,0,20,21,0,117,21,0,1,7,8,22,0,124,11,14,15,82,22,0,125,11,14,15,83,22,0,126,11,14,15,84,22,0,127,11,14,15,85,22,0,128,11,14,21,0,127,0,20,21,0,37,8,22,0,129,11,14,21,0,113,21,0,5,21,0,113,8,21,0,29,21,0,80,21,0,1,19,21,0,4,21,0,123,7,19,22,0,130,11,14,15,86,22,0,131,11,14,0,22,21,0,63,21,0,45,8,21,0,7,21,0,16,8,0,20,21,0,44,8,22,0,132,11,14,21,0,106,0,20,21,0,84,0,16,0,21,19,8,22,0,133,11,14,15,87,22,0,134,11,14,0,5,21,0,7,0,104,8,22,0,135,11,14,0,5,21,0,7,0,105,8,22,0,136,11,14,15,88,22,0,137,11,14,15,89,22,0,138,11,14,15,90,22,0,139,11,14,21,0,79,21,0,4,21,0,80,7,0,20,21,0,79,8,21,0,80,21,0,80,21,0,72,21,0,4,21,0,64,7,0,20,21,0,1,8,21,0,64,21,0,64,21,0,65,21,0,31,0,2,7,21,0,66,21,0,4,21,0,65,7,0,20,21,0,4,21,0,72,7,8,21,0,70,21,0,4,21,0,64,7,0,20,21,0,70,21,0,137,21,0,1,8,8,21,0,71,21,0,2,21,0,80,0,22,19,21,0,64,21,0,4,21,0,80,7,19,0,20,21,0,71,21,0,137,21,0,1,8,8,21,0,81,21,0,81,21,0,73,0,21,21,0,5,21,0,135,8,0,20,15,91,8,21,0,1,21,0,1,21,0,2,21,0,50,21,0,5,21,0,136,8,21,0,2,21,0,1,19,0,20,21,0,1,8,21,0,121,15,92,0,20,0,21,21,0,5,21,0,135,8,8,21,0,120,15,93,0,20,15,94,8,21,0,94,0,21,21,0,5,21,0,135,8,0,20,21,0,94,21,0,137,21,0,133,21,0,7,0,27,8,8,8,21,0,95,0,21,21,0,5,21,0,135,8,0,20,21,0,95,21,0,137,21,0,133,8,8,21,0,96,0,21,21,0,5,21,0,135,8,0,20,21,0,96,21,0,137,21,0,51,8,8,21,0,97,21,0,97,21,0,7,21,0,80,8,0,20,21,0,97,8,21,0,129,21,0,128,0,20,21,0,38,8,21,0,98,0,21,21,0,5,21,0,135,8,0,20,15,95,8,21,0,122,21,0,139,0,20,21,0,138,8,3,42,21,0,84,21,0,7,21,0,75,21,0,4,21,0,64,7,0,23,19,21,0,4,21,0,121,7,0,23,19,8,16,21,0,129,16,15,96,16,22,0,140,11,14,15,97,22,0,141,11,14,15,98,22,0,142,11,14,21,0,73,21,0,123,21,0,5,21,0,133,8,21,0,5,21,0,68,21,0,97,21,0,94,3,4,19,22,0,143,11,14,21,0,142,22,0,144,11,14,21,0,83,0,20,21,0,13,8,22,0,145,11,14,15,99,22,0,146,11,14,21,0,46,22,0,147,11,14,21,0,131,0,20,21,0,130,8,22,0,148,11,14,21,0,119,0,20,21,0,98,21,0,7,21,0,124,8,8,22,0,149,11,14,21,0,79,21,0,80,21,0,72,21,0,64,21,0,65,21,0,66,21,0,68,21,0,69,21,0,67,21,0,81,21,0,70,21,0,71,21,0,73,21,0,74,21,0,75,21,0,76,21,0,78,21,0,77,21,0,50,21,0,51,21,0,2,21,0,1,21,0,145,21,0,121,21,0,120,21,0,94,21,0,95,21,0,96,21,0,100,21,0,99,21,0,97,21,0,129,21,0,98,21,0,113,21,0,114,21,0,132,21,0,133,21,0,123,21,0,148,21,0,124,21,0,149,21,0,122,0,5,21,0,3,21,0,4,21,0,62,21,0,47,21,0,146,21,0,141,21,0,25,21,0,90,0,19,21,0,5,21,0,6,21,0,7,21,0,8,21,0,147,0,20,21,0,134,21,0,112,21,0,111,21,0,144,3,62,25,21,0,1,15,100,21,0,5,0,16,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,25,21,0,2,25,21,0,1,25,21,0,1,14,21,0,4,25,21,0,1,21,1,2,21,0,2,17,21,0,4,21,0,1,17,25,21,0,1,21,0,5,21,0,2,17,21,0,4,16,25,21,0,1,21,0,5,16,21,0,4,21,0,2,21,0,5,16,17,25,21,0,1,21,0,5,21,0,1,21,1,2,21,0,2,17,21,0,4,16,17,25,21,0,1,21,0,5,16,21,0,4,21,0,1,21,1,2,21,0,2,17,17,25,21,0,1,15,101,21,1,1,21,0,4,3,2,0,16,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,3,1,0,15,3,0,17,25,21,0,2,21,0,1,3,2,25,21,0,2,21,0,1,3,2,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,31,17,14,21,0,1,22,0,5,11,21,1,23,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,2,0,20,15,102,15,103,3,2,21,1,0,21,0,6,21,1,18,0,21,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,0,17,16,0,18,0,7,21,1,7,0,22,0,7,21,0,6,17,8,7,16,0,18,15,104,7,16,14,21,0,8,25,21,0,2,0,7,21,0,1,21,1,23,16,17,0,17,16,0,18,21,1,3,21,0,1,7,0,16,0,6,21,1,7,21,0,2,8,19,7,16,25,21,0,2,21,1,23,16,22,0,3,11,14,21,0,1,21,1,23,16,0,6,21,0,3,17,0,17,16,0,18,21,0,2,21,1,8,0,16,8,21,1,4,21,0,1,7,0,16,21,0,3,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,3,8,8,7,16,25,21,0,1,21,1,26,0,22,17,22,0,3,11,21,1,25,0,8,7,0,22,17,22,0,4,11,14,21,0,4,0,17,16,0,15,21,0,3,17,0,18,0,6,21,1,7,0,8,21,1,7,21,0,4,8,8,21,1,4,0,16,7,21,0,1,0,15,16,19,7,21,0,2,17,25,21,0,2,0,18,21,0,1,21,1,8,0,16,8,7,16,25,15,105,22,0,2,11,14,15,106,22,0,3,11,14,21,0,3,21,0,1,7,21,1,4,21,0,3,21,1,4,21,0,1,7,7,7,3,2,21,1,0,0,12,21,1,6,21,1,19,8,8,21,0,2,21,0,1,7,3,2,21,1,0,0,12,21,1,6,0,12,8,8,25,15,107,21,0,1,7,22,0,2,11,14,21,0,1,15,108,15,109,3,2,21,1,0,21,1,10,21,1,6,21,1,19,8,8,0,20,0,18,21,0,2,7,8,21,1,30,21,0,2,7,3,3,21,1,0,21,1,10,21,1,6,0,6,8,8,25,21,0,1,21,1,33,21,0,2,17,25,21,0,1,0,14,21,1,6,21,1,107,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,25,21,1,108,21,0,1,0,15,16,21,1,8,0,16,8,21,1,8,21,1,34,21,1,7,21,0,2,0,15,16,21,1,8,0,16,8,8,8,7,7,16,22,0,4,11,14,0,21,21,1,4,21,0,4,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,34,17,14,21,0,1,21,1,23,16,22,0,6,11,14,21,0,1,21,1,26,0,22,17,21,1,25,0,8,7,0,22,17,22,0,7,11,14,21,0,1,0,15,16,22,0,8,11,14,0,21,22,0,9,11,22,0,10,11,14,21,0,8,0,21,0,18,21,1,11,7,21,1,25,0,8,7,0,22,19,3,2,21,1,0,21,0,6,21,1,18,0,24,17,0,8,0,22,0,12,21,0,7,17,17,8,16,21,1,1,21,1,9,21,0,1,21,1,8,15,110,8,8,16,0,7,0,22,17,22,0,11,11,14,21,0,1,0,18,21,0,10,21,1,8,0,7,8,0,7,21,1,7,21,0,9,8,3,2,0,16,21,0,5,17,7,0,4,21,1,7,0,3,8,9,15,111,21,0,4,7,3,2,21,1,0,21,0,11,8,16,25,21,0,1,0,12,16,0,12,0,22,17,0,5,0,35,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,0,3,21,1,18,0,21,17,21,1,9,15,112,8,16,25,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,1,26,0,22,17,22,0,4,11,21,1,25,0,8,7,0,22,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,1,3,21,0,1,0,15,16,7,0,16,0,8,21,1,7,21,0,5,8,21,1,8,0,6,8,19,7,21,0,5,0,17,16,0,15,21,0,4,17,17,25,21,0,1,0,12,16,21,1,4,0,7,7,0,22,17,22,0,3,11,14,21,0,1,0,14,16,22,0,4,11,14,21,0,4,0,16,21,0,3,17,22,0,5,11,14,21,0,3,0,17,16,0,18,21,0,4,21,1,8,0,16,8,7,16,22,0,6,11,14,21,0,6,21,1,25,0,8,7,0,22,17,0,17,16,0,15,21,0,6,17,0,18,21,1,3,21,0,1,0,15,16,7,0,16,0,8,21,1,7,21,0,5,8,21,1,8,0,6,8,19,7,21,0,5,0,17,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,37,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,1,21,1,29,21,0,3,0,17,16,0,18,0,7,21,1,7,0,22,0,7,21,0,3,17,8,7,16,17,25,21,0,2,21,1,11,16,0,5,0,38,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,3,0,9,21,0,2,17,21,1,20,16,0,8,21,0,3,17,0,7,22,0,2,13,14,21,0,1,21,1,29,21,0,3,0,17,16,0,18,21,1,1,0,13,21,0,2,0,7,21,0,3,17,19,0,8,21,0,3,19,0,7,21,1,1,19,0,6,21,0,2,19,7,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,39,17,14,21,0,1,21,1,23,16,0,6,0,22,17,0,17,16,0,18,21,0,1,21,1,8,21,1,29,21,1,7,0,17,8,8,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,40,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,3,0,6,0,22,17,0,17,16,0,18,21,0,1,21,1,8,21,1,29,21,1,7,15,113,8,8,7,16,25,21,1,29,21,1,7,21,0,1,21,1,35,21,1,34,21,1,4,21,1,34,7,3,2,0,16,21,0,1,17,8,8,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,41,17,14,21,0,1,21,1,28,0,21,21,1,18,16,17,25,21,0,2,21,1,10,16,0,5,0,42,17,14,21,0,2,0,18,21,1,11,7,16,0,15,16,21,1,25,0,8,7,0,22,17,0,5,0,43,17,14,21,0,1,21,1,23,16,22,0,3,11,14,21,0,2,0,18,21,1,19,21,1,7,21,0,3,8,0,8,0,13,21,1,7,21,0,3,0,7,16,8,19,7,16,0,15,16,21,1,25,0,8,7,0,22,17,0,5,0,44,17,14,21,0,1,21,1,29,21,1,7,0,18,21,1,1,21,1,19,0,21,19,0,8,21,0,3,19,0,6,21,1,1,19,7,8,21,0,2,17,25,21,0,1,0,14,16,22,0,6,11,21,1,25,0,8,7,0,22,17,22,0,7,11,0,17,16,22,0,8,11,14,21,0,1,21,0,5,21,1,6,21,0,4,8,21,0,2,17,22,0,9,11,14,21,0,8,0,15,21,0,6,17,21,0,5,16,22,0,10,11,14,15,114,0,15,3,2,0,16,21,0,10,21,1,10,16,17,22,0,11,11,14,21,0,9,21,0,11,16,22,0,9,12,14,21,0,10,21,0,11,16,22,0,10,12,14,21,0,10,0,21,21,1,35,21,1,32,8,16,22,0,12,11,14,21,1,4,21,0,10,7,0,16,21,0,12,21,1,8,0,16,8,19,21,0,7,3,2,21,1,0,0,13,21,1,7,21,0,12,21,1,23,16,8,8,22,0,13,11,14,0,21,22,0,14,11,21,0,13,16,22,0,15,11,14,21,0,8,0,18,21,0,1,0,15,16,21,1,8,0,16,8,15,115,3,2,21,1,0,15,116,8,7,16,0,15,21,0,6,17,25,21,0,1,21,1,16,21,1,6,21,1,30,21,0,4,7,0,20,0,18,21,0,4,7,8,8,21,0,2,17,25,21,0,1,21,1,47,21,1,48,7,21,0,2,17,0,15,16,21,1,25,0,8,7,0,22,17,25,21,0,2,0,16,0,22,17,21,0,1,3,2,21,1,0,21,0,2,0,16,0,21,17,8,25,21,0,1,0,15,16,0,18,21,1,49,7,16,21,1,25,0,7,0,8,0,13,19,0,7,21,1,2,19,7,0,21,17,0,6,0,22,17,25,21,0,1,0,15,16,0,16,0,21,17,21,1,51,16,22,0,3,11,14,21,0,1,0,15,16,0,18,21,1,51,21,1,50,21,0,3,19,7,16,21,1,25,0,8,7,0,22,17,0,5,0,45,17,14,21,0,3,21,1,25,0,8,7,0,22,17,0,17,16,0,15,21,0,3,17,0,18,21,1,4,21,1,13,21,1,8,0,16,8,7,7,21,0,1,17,25,21,0,1,21,1,10,16,0,5,0,50,17,14,21,0,1,0,15,16,21,1,23,16,21,1,18,0,21,17,25,0,27,22,0,3,11,22,0,4,11,14,3,0,22,0,5,11,14,21,0,1,22,0,6,11,14,21,0,1,0,18,21,1,23,7,16,21,1,36,16,0,18,15,117,7,16,25,21,0,1,0,15,16,22,0,3,11,21,1,23,16,22,0,4,11,14,21,0,3,0,18,21,1,51,7,16,22,0,5,11,14,21,0,5,0,16,0,21,17,21,1,23,16,22,0,6,11,14,21,0,1,0,12,16,22,0,7,11,14,21,0,5,0,18,21,1,23,0,12,21,0,6,19,7,16,21,1,25,0,8,7,0,22,17,0,5,0,46,17,14,21,0,7,21,1,17,21,0,6,17,0,5,0,47,17,14,15,118,22,0,8,11,14,21,0,1,21,1,51,16,22,0,9,11,14,0,22,22,0,10,11,14,0,21,21,1,18,16,22,0,11,11,22,0,12,11,14,21,0,7,0,17,16,21,1,47,15,119,7,21,0,9,21,1,39,16,21,0,8,0,8,7,0,22,17,21,1,39,16,17,14,21,1,47,15,120,21,0,3,0,18,0,15,7,16,7,7,22,0,13,11,14,21,0,11,21,0,13,15,121,3,2,21,1,0,21,0,6,21,1,18,21,0,7,17,8,21,0,12,17,25,21,0,1,22,0,2,22,0,3,22,0,4,4,3,11,14,0,52,21,1,27,21,0,2,17,21,1,27,0,51,17,22,0,5,11,14,0,53,22,0,6,11,14,0,54,22,0,7,11,14,15,122,25,21,0,1,21,1,22,16,22,0,5,11,21,1,18,21,1,7,21,0,2,8,21,1,9,21,0,4,8,16,14,21,0,5,0,17,16,0,18,21,0,1,0,6,21,0,2,17,21,1,8,0,6,8,7,0,18,0,21,21,1,8,21,1,18,8,21,1,9,0,28,8,7,9,0,18,0,13,21,1,7,21,0,2,8,21,1,9,0,28,8,7,3,2,21,1,0,21,0,1,21,1,18,0,21,17,8,16,25,21,0,1,14,0,6,21,1,21,0,21,19,0,17,9,0,7,21,1,21,0,21,19,0,17,9,0,18,0,6,7,21,1,1,21,1,5,21,1,18,8,19,3,2,21,1,0,21,1,18,21,1,7,0,21,8,8,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,57,17,14,21,0,2,0,12,21,1,6,0,7,8,21,0,1,17,22,0,3,11,14,21,0,3,0,13,0,21,17,0,5,0,58,17,14,21,0,3,21,1,17,0,22,17,0,5,0,59,17,14,21,0,1,21,1,26,0,22,17,22,0,4,11,14,21,0,4,21,1,23,16,0,17,16,0,18,21,1,3,21,0,2,21,1,51,16,7,0,16,21,0,3,0,7,0,22,17,21,1,8,0,6,8,19,0,12,21,0,4,21,1,8,0,16,8,19,7,16,21,1,25,0,8,7,0,22,17,0,5,0,60,17,14,21,0,4,21,1,25,0,8,7,0,22,17,25,21,0,1,21,1,57,21,0,2,17,22,0,3,11,14,21,0,2,0,22,21,1,23,3,2,21,1,0,21,1,1,0,12,21,1,6,0,13,8,21,0,1,19,8,16,0,8,21,0,3,17,22,0,4,11,14,21,0,1,21,1,23,16,0,8,21,0,3,17,0,17,16,0,18,21,0,2,21,1,13,16,21,1,8,0,16,8,21,1,3,21,0,1,0,15,16,7,0,16,21,0,4,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,4,8,8,7,16,0,15,21,0,1,21,1,51,16,17,25,21,0,1,21,1,57,21,0,2,17,22,0,3,11,14,21,0,1,21,1,23,16,0,8,21,0,3,17,22,0,4,11,14,21,0,2,0,22,21,1,23,3,2,21,1,0,21,1,1,0,12,21,1,6,0,13,8,21,0,1,19,8,16,0,8,21,0,3,17,22,0,5,11,14,21,0,5,0,7,21,0,4,17,22,0,6,11,14,21,0,4,0,17,16,0,18,21,1,3,21,0,1,0,15,16,7,0,16,21,0,5,21,1,8,0,6,8,19,21,1,3,21,0,2,21,1,13,16,7,0,16,21,0,6,21,1,8,0,7,8,19,3,2,21,1,0,0,13,21,1,7,21,0,6,8,8,7,16,0,15,21,0,1,21,1,51,16,17,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,57,17,14,21,0,1,21,1,26,0,22,17,21,1,1,21,1,25,0,8,7,0,22,19,0,17,9,21,1,8,0,15,8,16,0,18,21,0,1,0,1,16,7,16,25,21,0,1,21,1,10,16,0,5,0,61,17,14,21,0,2,0,12,16,21,1,17,0,22,17,0,5,0,62,17,14,21,0,2,21,1,13,16,22,0,2,12,21,1,23,16,22,0,3,11,14,21,0,1,21,0,3,21,1,18,0,21,17,21,1,9,15,123,8,21,0,2,17,25,21,0,1,0,27,21,1,88,21,0,4,8,21,0,2,17,25,21,0,1,22,0,3,11,14,15,124,15,125,3,2,21,1,0,21,1,2,21,1,5,21,1,50,21,1,18,21,0,2,19,8,8,25,21,0,2,21,1,64,21,0,1,17,21,1,20,16,0,8,21,0,2,17,0,7,21,0,1,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,19,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,21,1,18,21,0,2,17,17,25,21,0,1,21,0,2,0,16,0,22,17,3,2,21,1,0,15,126,21,0,2,0,16,0,21,17,7,8,25,21,0,2,21,1,76,16,21,1,77,0,22,17,0,5,0,72,17,14,21,0,2,21,1,13,16,22,0,3,11,14,21,0,3,0,18,21,1,12,7,16,21,1,81,16,22,0,4,11,21,1,25,21,1,79,7,16,22,0,5,11,14,21,0,5,21,1,77,0,22,17,0,5,0,73,17,14,21,0,1,21,1,13,16,22,0,6,11,21,1,75,16,22,0,7,11,14,21,0,3,21,1,25,21,1,72,7,15,127,3,2,21,1,0,21,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,21,1,75,21,0,8,17,21,1,9,15,128,8,16,0,15,21,0,3,17,25,15,129,22,0,3,11,14,15,130,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,0,21,1,10,8,16,25,21,0,1,21,1,5,21,1,84,8,21,1,1,21,1,5,21,1,73,8,21,1,47,0,16,7,21,1,75,21,1,8,21,1,4,21,1,67,21,1,79,0,22,19,21,1,80,21,1,2,19,7,8,19,0,22,0,21,3,2,0,20,0,23,3,1,8,19,25,21,0,1,21,1,86,21,0,5,7,21,0,2,17,22,0,6,11,21,1,74,0,21,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,131,22,0,9,11,14,21,0,1,21,0,9,21,0,6,7,21,0,2,17,25,21,0,1,21,1,86,21,0,5,7,21,1,47,21,1,80,21,1,8,21,1,68,8,21,1,80,21,1,69,0,21,19,3,2,21,1,0,21,1,1,21,1,78,0,21,19,8,7,21,1,76,21,1,6,21,1,14,8,19,21,0,2,17,22,0,6,11,14,15,132,22,0,7,11,14,21,1,1,21,1,73,9,21,0,7,21,1,1,0,18,21,1,73,7,9,3,3,21,1,0,21,1,76,21,1,8,21,1,77,8,21,1,79,0,22,19,21,1,72,0,21,21,1,8,21,1,74,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,16,21,1,7,21,1,75,21,1,4,21,1,80,7,0,22,19,8,16,17,21,1,47,21,0,4,7,21,0,2,21,0,7,21,0,6,0,16,0,21,17,17,17,21,1,74,16,25,21,0,1,21,1,76,16,21,1,78,0,22,17,0,5,0,79,17,14,21,0,1,21,1,62,21,1,73,7,16,21,1,25,21,0,4,7,21,0,2,17,25,21,0,1,21,1,51,21,1,6,21,1,14,8,21,0,2,17,22,0,3,11,14,21,0,3,0,18,21,1,75,7,16,22,0,4,11,21,1,25,21,1,69,7,0,22,17,22,0,5,11,14,21,0,4,21,1,80,21,0,5,17,21,1,77,0,22,17,21,1,25,21,1,70,7,16,0,5,0,80,17,14,21,0,3,21,1,47,21,1,29,21,1,7,0,22,21,1,80,21,0,5,17,0,17,16,21,1,8,21,1,79,8,8,7,21,0,5,21,1,81,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,25,21,1,50,7,16,0,5,0,81,17,14,21,0,3,21,1,47,0,22,21,1,1,0,16,0,21,19,3,2,21,1,0,21,1,2,8,7,21,0,4,21,1,76,21,0,5,17,17,21,1,25,21,1,79,7,16,22,0,7,11,14,21,0,1,21,1,84,21,1,6,21,1,27,8,21,0,2,17,21,1,84,21,0,6,0,16,0,21,17,21,1,27,21,0,7,3,1,17,17,25,21,0,2,21,1,12,16,0,5,0,36,17,14,21,0,2,22,0,3,11,22,0,4,11,14,21,0,1,21,1,29,21,0,1,21,1,75,16,21,1,72,21,0,3,17,0,17,16,0,19,21,1,4,15,133,21,1,9,15,134,8,7,7,16,17,25,21,0,1,21,1,75,21,1,6,21,1,76,8,21,0,2,17,0,5,0,82,17,14,21,0,1,21,1,92,21,0,2,17,25,21,0,1,0,18,21,1,11,7,16,21,1,25,21,1,70,7,16,0,5,0,83,17,14,21,0,1,21,1,78,0,27,17,21,1,25,21,1,70,7,16,0,5,0,84,17,14,21,0,1,0,4,21,0,1,0,3,16,22,0,5,11,17,22,0,6,11,14,0,21,22,0,7,11,14,21,0,5,0,18,21,1,96,21,1,5,0,18,15,135,7,8,21,0,4,9,7,16,25,21,0,1,21,1,76,16,21,1,76,0,22,17,0,5,0,85,17,14,21,1,101,21,1,1,7,22,0,3,11,14,21,0,1,21,0,3,0,18,15,136,7,21,1,25,0,18,0,18,21,1,27,7,7,7,3,0,21,1,73,16,21,1,73,16,19,3,2,21,1,0,21,1,50,21,1,73,0,22,19,8,16,25,21,0,1,21,1,10,16,0,5,0,86,17,14,21,0,2,21,1,50,21,1,74,0,23,19,21,1,9,21,1,16,21,1,5,21,1,14,8,8,16,22,0,2,12,14,21,0,2,21,1,76,16,21,1,76,0,22,17,0,5,0,87,17,14,21,0,2,0,18,21,1,76,7,16,21,1,25,21,1,79,7,16,22,0,3,11,14,21,0,1,21,1,76,16,21,1,78,21,0,3,17,0,5,0,88,17,14,21,0,1,21,1,51,16,21,1,94,21,0,3,17,21,1,76,21,0,2,0,18,21,1,51,7,16,21,1,53,16,17,21,1,25,21,1,70,7,16,0,5,0,89,17,14,21,0,2,0,18,21,1,84,7,16,22,0,2,12,0,18,21,1,75,7,16,22,0,4,11,14,21,0,1,21,1,26,21,0,3,17,21,1,27,21,0,4,21,1,25,21,1,72,7,16,3,1,17,21,1,4,21,1,84,7,21,0,1,17,21,1,8,21,1,29,8,22,0,5,11,14,21,0,2,0,16,21,1,7,0,21,8,21,1,101,21,0,5,7,9,0,18,21,1,101,21,1,1,7,7,21,1,72,21,0,4,21,1,97,16,21,1,99,0,22,17,0,19,21,1,72,7,16,21,1,97,16,19,21,1,25,0,18,0,18,21,1,79,7,7,7,9,0,18,21,0,5,7,9,3,2,21,1,0,21,1,75,21,1,75,0,22,19,8,16,25,21,0,2,21,1,76,16,21,1,76,0,22,17,0,5,0,90,17,14,21,0,1,21,1,51,16,22,0,3,11,21,1,75,21,1,6,21,1,76,8,21,0,2,17,0,5,0,91,17,14,21,0,2,0,18,21,1,11,7,16,21,1,25,21,1,70,7,16,0,5,0,92,17,14,21,0,3,21,1,73,21,1,70,21,1,80,21,1,8,21,1,77,8,19,21,0,2,17,21,1,25,21,1,70,7,16,0,5,0,93,17,14,0,21,21,1,73,21,0,2,17,21,1,72,21,0,3,17,21,1,79,21,0,2,17,22,0,2,12,14,21,0,2,21,1,75,16,21,1,81,21,1,7,21,1,96,8,16,21,1,80,16,21,1,25,21,1,1,21,1,72,21,0,3,21,1,8,0,16,8,19,21,1,79,21,0,2,21,1,8,0,16,8,19,7,0,21,17,21,1,4,0,16,7,21,0,1,21,1,84,16,17,25,21,0,2,0,18,21,0,1,21,1,8,21,1,105,8,7,16,25,21,0,1,21,1,76,21,1,7,0,21,8,21,1,25,21,1,71,7,9,21,1,6,21,1,4,21,1,80,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,21,21,0,3,3,2,15,137,3,2,21,1,0,0,21,21,1,76,21,0,3,17,8,21,0,2,17,25,21,0,4,22,0,5,11,14,21,0,2,22,0,6,11,14,21,0,1,22,0,7,11,14,15,138,22,0,8,11,14,21,0,4,21,1,76,21,1,7,0,21,8,21,1,9,21,0,1,8,9,21,0,8,3,2,0,16,21,0,6,21,1,75,0,22,17,17,25,21,0,1,22,0,2,11,14,21,1,73,21,1,7,0,21,8,21,1,9,15,139,8,25,21,0,2,21,1,76,16,21,1,4,21,1,80,7,0,22,17,22,0,5,11,14,21,0,5,21,1,78,0,21,17,0,5,0,94,17,14,21,0,1,21,1,76,16,21,1,78,21,0,5,17,0,5,0,95,17,14,21,0,2,21,1,26,0,22,17,22,0,6,11,21,1,25,21,1,72,7,16,22,0,7,11,14,0,21,21,1,108,21,0,2,21,1,84,16,21,1,8,0,16,8,21,1,6,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,75,16,0,22,0,22,21,1,8,21,1,80,21,1,5,21,1,96,8,8,21,1,72,21,0,7,19,0,18,21,1,79,21,1,7,21,0,7,8,21,1,8,21,0,8,8,7,9,21,1,4,21,1,78,7,0,21,19,21,1,25,21,1,70,7,9,3,2,21,1,0,21,1,73,21,1,7,0,21,8,8,16,0,5,0,96,17,14,21,0,1,21,1,76,16,21,1,4,21,1,80,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,26,21,0,9,17,22,0,10,11,14,21,0,10,21,1,107,21,0,6,17,22,0,11,11,14,21,0,11,21,1,25,21,1,108,21,0,1,21,1,84,16,21,1,8,0,16,8,21,1,8,21,0,4,21,1,7,21,0,2,21,1,84,16,21,1,8,0,16,8,8,8,7,7,16,22,0,12,11,14,21,1,4,0,21,7,21,1,78,21,0,12,21,1,7,21,1,72,21,1,7,21,0,6,21,1,25,21,1,72,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,96,16,0,18,21,0,1,21,1,51,16,21,1,8,0,16,8,7,16,21,1,25,21,1,72,7,21,1,96,9,21,1,8,21,1,84,8,16,21,1,72,21,0,10,21,1,25,21,1,72,7,16,17,0,18,15,140,21,1,7,21,0,2,21,1,75,16,8,7,16,25,21,0,1,22,0,2,11,14,21,1,90,21,1,70,7,21,1,81,9,0,19,21,1,70,7,21,1,90,21,1,79,7,9,3,2,0,16,21,0,1,17,22,0,3,11,14,15,141,25,21,0,1,21,1,76,16,21,1,78,0,22,17,0,5,0,98,17,14,21,0,1,21,1,113,16,22,0,5,11,14,21,0,1,21,1,75,16,21,1,96,16,0,18,0,22,21,1,1,21,0,1,21,1,76,21,1,73,0,22,19,21,1,9,21,1,62,21,1,73,7,8,16,21,1,29,21,0,5,17,21,1,8,0,16,8,21,1,6,21,1,51,8,0,22,21,1,8,21,1,80,8,19,3,2,21,1,0,21,1,73,21,1,7,0,21,8,8,7,16,21,0,4,21,0,5,17,21,1,29,21,0,5,21,1,116,16,17,25,21,0,2,21,1,76,16,22,0,3,11,14,21,0,1,21,1,76,16,21,1,78,21,0,3,17,0,5,0,99,17,14,21,0,1,21,0,3,21,1,112,21,1,96,8,21,0,2,21,1,51,16,17,21,0,3,21,1,112,21,1,50,8,21,0,2,17,25,21,0,2,21,1,76,16,21,1,77,0,22,17,0,5,0,100,17,14,21,0,1,21,1,51,16,21,1,75,21,1,6,21,1,78,8,21,0,2,17,0,5,0,101,17,14,21,0,2,21,1,84,16,0,18,21,1,12,7,16,21,1,25,21,1,70,7,16,0,5,0,102,17,25,21,0,1,21,1,51,16,21,1,122,21,0,2,17,0,18,21,1,25,21,1,68,7,7,16,21,1,96,16,0,18,21,1,3,21,0,1,7,21,1,106,21,1,29,21,1,7,21,0,2,8,19,7,16,25,21,0,1,21,1,125,21,0,2,17,14,21,0,2,21,1,84,16,22,0,2,12,14,21,0,2,21,1,124,16,21,1,81,16,21,1,25,21,1,79,7,16,21,1,80,21,0,1,21,1,76,16,17,22,0,3,11,14,21,0,3,21,1,73,21,0,2,17,21,1,25,21,1,70,7,16,0,5,0,103,17,14,21,0,1,21,1,126,21,0,3,21,1,96,16,21,1,1,21,1,98,21,1,4,21,1,124,21,1,5,21,1,81,8,7,19,21,0,2,17,21,1,121,21,0,2,17,17,25,21,0,1,21,1,125,21,0,2,17,14,21,0,2,21,1,84,16,22,0,2,12,14,21,0,1,21,1,76,16,22,0,3,11,14,21,0,2,21,0,3,21,1,8,21,1,73,8,21,1,70,21,1,124,19,16,21,1,25,21,1,70,7,16,21,1,135,16,14,21,0,1,21,1,126,21,0,3,21,1,96,16,21,1,1,21,1,98,21,1,4,21,1,124,21,1,5,21,1,81,8,7,19,21,0,2,17,21,1,121,21,0,2,17,21,1,116,16,17,25,21,0,1,21,1,123,21,1,7,21,0,2,8,21,1,130,21,1,8,21,1,62,21,1,120,7,8,9,21,1,84,21,1,3,0,23,7,21,1,121,21,1,75,19,19,21,1,6,21,1,123,8,21,0,2,17,25,21,0,1,15,142,21,0,5,21,1,133,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,21,0,4,21,0,2,17,22,0,6,11,14,21,0,6,21,0,5,21,0,2,17,21,1,50,21,0,1,17,21,1,136,16,14,21,0,6,25,21,0,1,21,1,76,16,21,1,76,0,22,17,21,1,135,16,14,21,0,1,21,1,121,16,22,0,3,11,14,21,0,3,0,18,21,1,12,7,16,21,1,25,21,1,70,7,16,21,1,135,16,14,21,0,3,0,3,16,22,0,4,11,14,0,22,21,1,78,21,0,4,17,21,1,25,21,1,70,7,16,21,1,136,16,14,21,0,4,21,1,81,16,21,1,98,16,22,0,5,11,14,21,0,5,21,1,47,0,27,7,16,21,1,121,21,0,1,21,1,47,21,1,75,7,16,21,1,98,16,17,21,1,132,21,0,5,21,1,121,21,0,3,17,21,1,113,16,17,25,21,0,2,21,1,76,16,21,1,76,0,22,17,21,1,135,16,14,21,0,2,0,18,21,1,12,7,16,21,1,25,21,1,70,7,16,21,1,135,16,14,21,0,1,21,1,121,21,1,6,21,1,132,21,1,7,21,1,113,8,8,21,0,2,21,1,122,16,17,25,21,0,1,21,1,10,16,21,1,136,16,14,21,0,1,21,1,76,16,21,1,76,0,21,17,21,1,136,16,14,21,0,1,21,1,133,16,25,21,0,2,21,1,76,21,1,6,21,1,80,8,21,0,1,17,22,0,3,11,14,21,0,3,0,22,21,1,8,21,1,78,8,21,1,70,21,1,78,21,1,7,0,21,8,19,16,21,1,136,16,14,21,0,2,0,22,21,1,75,3,2,21,1,134,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,75,16,21,1,78,21,0,4,17,21,1,136,16,14,21,0,1,21,1,132,21,1,94,21,1,7,21,0,4,8,3,2,21,1,134,21,0,3,8,16,21,1,50,21,0,2,17,21,1,136,16,14,21,0,1,21,1,95,21,0,4,17,25,21,0,1,21,1,75,16,21,1,76,0,23,17,21,1,136,16,14,21,0,1,21,1,132,16,21,1,50,21,0,2,17,21,1,136,16,14,21,0,1,21,1,132,0,22,17,25,21,0,1,21,1,75,16,21,1,76,0,22,17,21,1,136,16,14,21,0,1,21,1,132,16,25,21,0,1,21,1,76,16,21,1,76,0,22,17,21,1,135,16,14,21,0,1,0,18,21,1,12,7,16,21,1,25,21,1,70,7,16,21,1,135,16,14,21,0,1,21,1,95,21,1,7,0,22,8,21,1,78,21,1,95,21,1,7,0,27,8,19,21,1,25,21,1,70,7,9,16,21,1,136,16,14,21,0,1,0,3,16,25,21,1,4,21,1,4,0,21,7,0,5,0,106,19,3,1,21,1,121,21,0,1,21,1,132,0,22,17,17,7,21,1,133,21,1,73,21,1,123,21,0,1,21,1,132,0,21,17,19,21,1,133,9,19,25,21,0,1,21,1,140,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,21,22,0,7,11,22,0,8,11,14,21,0,6,0,21,21,1,111,15,143,8,16,14,21,0,1,22,0,9,11,14,15,144,22,0,10,11,14,21,0,7,21,0,10,21,1,1,21,0,4,21,0,2,19,7,16,22,0,11,11,14,21,0,8,21,1,80,16,21,0,10,21,1,1,21,1,141,21,0,4,7,21,0,2,19,7,16,22,0,12,11,14,21,0,6,0,21,21,1,111,21,1,3,21,0,11,21,0,12,3,2,7,21,1,133,0,21,21,1,8,21,1,73,8,19,21,1,133,21,1,67,19,8,16,25,21,0,1,21,1,16,21,1,6,0,18,21,0,4,7,8,21,0,2,17,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,82,16,25,0,22,0,7,21,1,6,17,22,1,6,12,14,21,0,1,0,16,21,1,6,17,25,21,1,8,21,1,7,21,1,5,0,16,21,0,1,17,17,22,1,8,12,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,0,17,16,21,2,25,0,8,21,2,7,21,0,1,0,14,16,21,2,8,0,16,8,0,12,21,0,5,21,2,8,0,16,8,19,8,7,0,22,17,0,5,0,32,17,14,21,0,5,21,2,25,0,8,7,0,22,17,0,17,16,0,18,21,0,1,0,15,16,21,2,8,0,16,8,21,0,4,21,0,2,0,15,16,21,2,8,0,16,8,19,7,16,0,15,21,0,5,17,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,22,0,6,11,14,21,0,1,0,14,16,22,0,7,11,14,21,0,6,0,17,16,21,2,25,0,8,21,2,7,21,0,7,21,2,8,0,16,8,0,12,21,0,5,21,2,8,0,16,8,19,8,7,0,22,17,0,5,0,33,17,14,21,0,6,0,7,21,0,1,0,12,16,17,0,17,16,21,2,25,0,8,21,2,7,0,6,21,2,7,21,0,6,8,21,2,4,0,16,7,21,0,7,19,8,7,0,22,17,22,0,8,11,14,21,0,2,0,15,16,22,0,9,11,14,21,0,1,0,15,16,22,0,10,11,14,21,0,8,0,17,21,2,6,0,18,21,2,3,21,0,10,7,0,16,0,6,21,2,7,0,8,21,2,7,21,0,8,8,8,19,21,0,4,21,0,9,21,2,8,0,16,8,19,7,8,21,0,9,21,2,23,16,17,0,15,16,0,15,21,0,7,17,25,21,0,1,21,2,31,21,0,4,7,21,0,2,17,25,21,0,1,0,18,15,145,21,0,2,7,7,16,25,21,0,2,0,18,15,146,21,0,1,7,7,16,25,21,1,6,0,8,0,23,17,0,13,21,0,1,21,2,25,21,2,20,7,16,22,1,10,12,0,7,21,0,1,21,2,25,21,2,21,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,4,0,21,7,21,2,19,0,21,21,2,108,21,1,8,21,2,8,0,16,8,21,2,6,21,0,4,8,7,21,1,7,17,19,22,0,5,11,14,21,2,1,21,1,6,3,2,21,2,0,0,13,21,2,7,21,1,6,8,8,22,0,6,11,14,0,21,0,12,21,1,6,17,0,6,21,1,6,17,0,2,0,23,17,21,2,21,16,22,0,7,11,0,17,16,0,18,21,2,1,0,6,0,22,19,0,7,21,0,7,19,0,10,0,23,19,7,16,21,2,25,15,147,7,21,1,6,0,17,16,17,25,21,0,1,0,18,21,2,12,7,16,21,2,25,0,8,7,0,22,17,0,5,0,36,17,14,0,22,0,7,21,1,3,17,22,0,3,11,14,21,2,1,0,7,21,0,3,19,21,2,4,0,16,7,21,1,3,0,17,16,0,18,0,7,21,2,7,21,0,3,8,7,16,0,19,21,2,1,21,2,4,0,16,7,21,0,1,19,0,12,0,21,19,0,8,0,7,19,0,6,21,2,1,19,7,16,19,22,0,4,11,14,21,0,1,0,19,0,6,7,16,21,2,8,0,16,8,22,0,5,11,14,0,21,21,0,4,16,22,0,6,11,21,0,5,16,22,0,7,11,14,21,0,3,21,0,5,16,0,17,16,0,18,15,148,7,16,25,21,0,1,0,7,21,1,3,17,0,17,16,0,18,0,6,21,2,7,21,0,1,8,7,16,25,21,0,1,3,1,25,21,0,1,14,21,1,9,0,16,21,1,12,0,16,21,1,14,17,17,22,0,3,11,14,21,1,14,0,6,0,22,17,22,1,14,12,21,1,13,16,22,1,15,12,14,21,0,3,25,21,0,1,0,12,21,1,15,17,25,21,0,1,0,12,21,2,7,21,1,4,8,0,7,0,22,19,21,2,9,15,149,8,16,14,21,1,5,0,16,0,22,0,6,21,1,3,17,22,1,3,12,17,25,21,0,2,22,0,5,11,14,21,0,4,22,0,6,11,14,21,0,1,0,18,15,150,7,16,25,21,0,2,22,0,3,11,14,21,1,9,0,16,21,0,1,17,22,0,4,11,14,21,1,5,0,18,0,16,21,2,7,21,0,1,8,7,16,22,0,5,11,14,21,0,4,0,17,16,0,18,21,2,3,21,0,5,7,0,16,0,8,21,2,7,21,0,3,8,19,7,16,22,0,6,11,14,21,0,3,0,17,16,0,18,21,2,2,7,21,0,6,17,0,18,21,2,1,7,21,1,10,0,17,16,17,0,15,16,21,2,47,0,12,7,21,0,5,17,21,2,25,0,8,7,0,22,17,0,5,0,48,17,14,21,0,6,21,2,36,16,22,0,7,11,14,21,0,7,21,2,23,16,0,17,16,0,18,21,0,6,21,1,8,0,6,7,0,21,17,21,2,29,21,0,7,17,21,2,8,0,16,8,21,2,8,0,7,8,7,16,22,0,8,11,14,21,0,8,0,18,21,2,1,7,21,1,12,17,21,2,47,0,6,7,21,0,7,0,18,21,0,6,21,2,8,0,16,8,21,2,8,0,8,8,7,21,1,12,17,17,22,1,12,12,14,21,0,7,0,18,0,6,21,2,7,21,0,4,21,2,8,0,8,8,8,7,21,1,11,17,22,1,11,12,14,21,0,4,0,8,22,1,10,13,25,21,0,4,0,16,21,0,1,17,0,16,21,0,2,17,25,21,2,29,21,2,7,21,1,7,0,7,21,1,6,17,0,17,16,0,18,0,6,21,2,7,21,1,7,8,7,16,8,22,0,3,11,14,21,1,5,0,16,0,21,17,21,0,3,16,22,0,4,11,14,21,1,5,0,18,21,0,3,21,2,47,0,12,7,21,0,4,19,21,2,25,0,8,7,9,7,16,21,2,25,0,8,7,0,22,17,0,5,0,49,17,14,21,0,4,21,2,25,0,8,7,16,22,0,5,11,0,17,16,0,15,21,0,4,17,22,0,6,11,14,21,0,6,0,18,21,2,2,7,21,0,1,17,21,1,13,21,0,6,0,18,0,6,21,2,7,0,8,21,2,7,21,0,5,8,8,7,21,0,2,17,17,25,21,0,2,0,12,16,21,2,17,0,22,17,0,5,21,1,6,17,14,21,0,2,21,2,13,16,22,0,2,12,14,21,0,2,0,18,21,2,11,7,16,21,2,25,0,8,7,0,22,17,0,5,21,1,7,17,14,21,0,2,21,2,23,16,22,0,3,11,14,21,0,1,21,2,51,16,21,2,23,21,2,8,21,2,19,8,21,2,9,15,151,8,21,0,3,17,22,0,4,11,14,15,152,22,0,5,11,14,0,21,21,2,18,16,22,0,6,11,14,0,22,22,0,7,11,14,15,153,22,0,8,11,14,0,21,22,0,9,11,14,21,0,3,0,17,16,0,18,21,0,2,21,2,8,0,16,8,15,154,21,1,4,15,155,7,21,0,8,21,2,2,19,3,2,21,2,0,21,1,3,8,21,0,4,21,2,8,0,16,8,19,7,16,22,0,10,11,14,21,0,1,21,2,16,16,0,15,21,2,7,21,0,4,8,15,156,3,2,21,2,0,21,0,6,0,12,16,21,2,18,0,21,17,8,16,25,21,0,1,0,12,16,0,13,21,1,3,17,0,5,0,63,17,14,21,0,2,0,18,21,2,12,7,16,21,2,25,0,8,7,16,0,5,0,64,17,14,21,0,1,21,2,51,16,22,0,3,11,14,21,1,3,0,17,16,0,18,21,0,2,21,2,8,0,16,8,0,7,21,0,3,21,2,8,0,16,8,19,0,6,0,22,19,7,16,22,0,4,11,14,21,0,4,0,18,0,13,21,2,7,0,21,8,7,16,21,2,25,0,8,7,16,0,5,0,65,17,14,21,0,3,21,2,29,21,1,3,0,7,21,2,7,21,2,23,8,21,0,3,17,0,17,16,0,18,0,6,21,2,7,21,1,3,8,7,16,17,22,0,5,11,21,2,25,0,8,7,0,22,17,22,0,6,11,14,0,22,0,7,21,1,3,17,15,157,16,21,2,27,21,0,6,3,1,17,0,19,0,8,7,16,21,2,39,16,22,0,7,11,14,21,0,2,21,2,1,21,2,47,15,158,7,21,0,7,19,21,2,25,0,18,0,6,7,7,9,21,2,6,0,18,0,6,7,8,21,0,4,17,0,22,21,2,8,0,12,8,0,7,0,22,19,21,2,9,21,2,4,0,17,0,15,21,0,5,19,21,2,8,0,18,0,6,7,8,7,8,21,0,6,17,0,18,21,0,1,0,15,16,21,2,8,0,16,8,7,16,25,21,0,1,0,12,16,0,13,0,22,17,0,5,0,66,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,12,16,21,2,17,0,22,17,0,5,0,67,17,14,21,0,1,21,2,51,16,21,2,23,21,2,6,0,13,8,21,0,2,17,0,5,0,68,17,14,21,0,2,21,2,23,16,22,0,3,11,14,21,0,2,0,15,16,21,2,8,0,16,8,22,0,4,11,14,21,0,1,21,0,3,21,2,18,0,21,17,21,2,9,15,159,8,0,21,17,25,21,0,1,21,2,76,21,0,4,17,25,21,0,1,21,2,47,21,2,1,0,22,3,2,21,2,0,21,2,2,8,7,21,1,4,17,21,2,25,21,2,72,7,16,22,0,3,11,14,21,0,3,21,2,73,0,21,17,0,5,0,74,17,14,21,1,4,21,2,75,16,0,17,16,21,2,72,21,1,4,17,21,2,25,21,2,79,7,16,22,0,4,11,14,21,1,3,0,16,21,0,4,17,21,2,143,16,22,0,5,11,14,0,30,21,2,73,21,0,5,17,0,5,0,75,17,14,21,2,76,21,2,7,21,2,68,8,0,5,0,76,19,21,2,2,21,2,1,19,22,0,6,11,14,21,0,3,21,2,64,21,1,7,17,21,0,6,21,2,68,21,2,69,3,3,21,2,0,21,0,5,21,2,68,0,23,17,8,16,22,0,7,11,14,21,1,3,21,2,47,21,2,1,21,0,7,3,2,21,2,0,21,2,2,8,7,21,1,4,17,22,1,3,12,14,21,0,7,21,2,72,21,0,3,17,21,0,5,21,2,76,0,25,17,21,2,9,21,2,73,21,2,7,21,1,7,8,21,2,9,15,160,8,8,16,25,21,1,8,0,17,16,0,18,21,2,2,7,21,2,7,0,1,8,15,161,3,2,21,2,0,21,1,7,21,2,73,0,21,17,8,21,0,1,17,25,21,0,1,21,2,12,16,0,5,0,77,17,14,21,0,1,0,17,16,25,21,0,1,21,2,76,16,21,2,76,0,22,17,0,5,0,78,17,14,21,0,1,0,18,21,1,3,7,16,21,2,25,0,18,21,2,27,21,2,7,21,2,84,8,7,7,3,0,21,2,73,16,17,25,21,1,9,21,1,7,21,2,79,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,47,21,0,5,7,21,2,2,21,2,5,0,18,21,0,1,21,2,8,21,0,5,8,7,8,21,2,1,21,2,5,0,18,21,2,1,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,0,21,2,50,21,2,6,21,2,14,8,21,2,77,21,0,4,21,2,69,0,21,17,19,21,2,71,0,21,21,2,77,21,0,4,17,21,2,70,21,1,7,17,19,21,2,83,0,23,19,21,2,25,21,2,79,21,2,7,0,23,21,2,8,21,2,72,8,8,7,9,8,21,0,2,17,25,21,0,1,21,2,51,16,21,2,29,21,0,2,0,17,16,17,22,0,3,11,14,21,0,1,21,2,26,21,0,2,17,22,0,4,11,21,2,25,21,2,72,7,16,22,0,5,11,14,21,0,3,21,2,25,21,2,72,7,16,0,17,16,0,18,21,2,1,21,2,72,21,0,5,19,21,2,79,21,0,5,0,17,16,21,2,84,21,0,4,17,19,21,2,5,0,18,21,0,1,21,2,84,16,21,2,8,0,16,8,7,8,7,16,21,2,84,21,0,3,17,25,21,0,2,21,2,76,21,1,4,17,25,21,1,3,21,2,79,22,1,4,13,14,21,0,1,21,2,79,0,22,17,25,21,0,1,14,21,1,6,0,16,21,1,7,17,21,2,1,0,22,21,2,79,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,84,16,21,1,3,16,0,18,21,0,1,21,2,51,16,21,2,96,16,21,2,84,16,21,2,8,21,2,29,8,7,16,25,21,0,1,21,2,75,21,2,6,21,2,80,8,21,0,2,17,21,2,72,16,22,0,3,11,14,21,0,1,21,2,75,21,2,6,21,2,68,8,21,0,2,17,22,0,4,11,14,21,0,1,15,162,21,2,7,21,2,75,21,2,79,21,0,4,21,2,96,16,21,2,79,0,22,17,21,2,80,16,19,8,21,2,6,15,163,8,21,0,2,17,22,0,5,11,14,21,0,5,21,0,3,3,2,25,21,0,2,22,0,3,11,14,21,0,1,22,0,4,11,14,15,164,21,1,7,3,2,21,2,0,21,2,76,21,2,7,21,1,6,8,8,22,0,5,11,14,0,21,21,0,5,16,25,15,165,22,0,3,11,14,0,27,21,0,3,0,22,21,2,79,21,0,1,17,17,21,2,79,0,22,17,25,21,0,2,21,2,109,21,0,1,21,2,8,21,1,13,8,7,16,25,21,0,2,21,2,76,16,21,2,4,21,2,80,7,0,22,17,22,0,3,11,14,21,0,3,21,2,78,0,21,17,0,5,0,97,17,14,21,0,1,21,2,16,16,21,2,1,21,2,5,21,0,3,21,2,112,0,21,8,8,21,2,1,21,0,3,21,2,112,21,2,73,8,3,2,21,2,0,21,0,3,21,2,73,0,21,17,8,21,2,6,0,18,21,2,51,7,8,21,1,3,9,3,2,21,2,0,21,0,2,21,2,75,16,21,2,73,0,21,17,8,15,166,3,2,21,2,0,21,2,84,21,2,5,21,2,75,8,21,2,73,0,26,19,21,2,6,21,2,70,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,11,16,0,5,0,107,17,14,21,0,1,21,2,68,21,1,8,17,22,1,8,12,14,21,0,1,21,2,69,21,1,7,17,22,1,7,12,25,21,0,1,21,2,79,0,21,17,21,2,96,16,21,2,121,21,1,9,3,1,17,0,19,21,2,2,21,2,5,21,0,4,8,7,16,25,21,0,1,21,2,2,21,0,4,17,25,21,0,4,21,2,2,21,0,1,17,25,21,0,2,22,0,3,11,0,7,16,22,0,4,11,14,0,21,22,0,5,11,22,0,6,11,22,0,7,11,14,0,25,22,0,8,11,14,21,0,1,0,22,0,12,21,2,7,17,0,7,0,22,17,21,3,9,0,18,0,8,21,3,7,21,2,7,8,7,8,16,21,3,8,0,16,8,21,3,6,21,1,5,8,22,0,9,11,14,21,0,9,0,21,0,22,0,23,3,4,22,0,10,11,14,0,6,15,167,3,2,0,16,21,0,3,0,13,0,26,17,17,22,0,11,11,14,15,168,22,0,12,11,14,15,169,15,170,21,0,12,3,3,21,3,0,15,171,8,22,0,13,11,14,21,0,1,0,18,21,0,1,21,3,8,15,172,8,7,16,25,21,1,6,21,1,7,0,12,21,0,1,17,21,3,9,15,173,8,16,25,21,0,1,22,2,4,12,21,3,4,0,16,7,21,2,6,17,22,2,5,12,14,0,27,22,2,3,12,25,21,1,5,22,0,3,11,14,21,0,1,21,1,6,22,1,5,13,14,21,0,3,25,21,0,1,21,3,27,21,0,1,21,3,23,16,0,7,21,0,2,17,0,17,21,3,5,0,18,0,22,7,8,16,17,25,21,0,1,0,18,0,6,7,21,0,2,0,18,21,0,4,21,3,8,0,8,8,7,16,17,25,21,0,1,0,22,21,3,8,0,12,8,0,7,0,22,19,21,3,9,21,1,5,21,0,2,7,21,3,7,0,17,8,8,21,1,7,17,21,1,5,21,0,2,0,8,21,1,7,17,7,22,1,6,13,14,0,22,22,1,7,12,14,21,0,1,21,3,23,16,25,21,0,2,0,8,22,1,7,13,14,21,0,2,25,0,22,22,1,9,12,25,21,1,3,0,7,21,1,4,21,3,23,16,17,0,17,16,0,18,0,6,21,3,7,21,1,3,8,21,3,4,0,16,7,21,1,4,19,7,16,22,0,3,11,21,3,27,22,1,10,13,14,21,0,3,21,3,25,0,8,7,21,1,7,17,0,12,21,3,7,0,22,8,0,7,0,22,19,21,3,9,15,174,8,16,14,21,0,1,0,15,16,21,3,8,0,16,8,22,0,4,11,14,21,1,9,21,3,1,21,3,9,15,175,8,16,14,21,1,6,0,15,21,1,10,17,0,18,21,0,4,7,16,25,21,0,1,0,17,16,0,18,0,7,21,3,7,21,0,1,8,21,3,4,0,16,7,21,1,3,19,7,16,25,21,0,1,0,17,16,0,18,0,8,21,3,7,21,0,2,8,7,16,25,21,0,1,0,22,0,7,21,1,3,17,21,3,18,21,0,2,17,21,3,9,21,3,62,21,0,0,21,3,7,21,0,2,0,6,0,22,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,21,3,80,21,0,1,17,0,17,16,0,18,21,2,6,0,1,16,7,16,21,3,27,22,2,6,13,14,21,2,7,25,21,0,1,21,3,67,21,2,7,17,0,18,21,2,6,21,3,8,0,16,8,7,16,25,21,0,2,0,18,21,0,1,21,3,8,0,16,8,7,16,25,21,0,1,21,3,76,21,0,2,17,0,19,21,3,70,7,16,21,3,25,21,3,79,7,16,22,0,3,11,14,21,0,3,21,3,96,16,0,18,21,0,2,21,3,8,0,16,8,7,16,21,3,25,21,3,72,7,16,22,0,4,11,14,21,0,3,21,3,74,21,3,7,21,1,4,8,21,3,9,21,0,2,21,0,1,3,2,21,3,8,21,3,47,0,16,7,8,21,3,5,15,176,8,8,16,14,21,0,4,25,21,1,4,21,3,79,21,3,7,21,0,1,8,21,3,6,21,2,5,8,21,1,3,17,21,3,76,21,3,7,0,21,8,21,3,9,21,0,1,21,3,79,0,22,17,21,3,5,21,1,5,8,8,16,25,21,0,1,0,22,21,3,8,21,3,74,8,21,3,9,15,177,8,21,0,2,17,25,21,0,2,21,3,114,16,21,3,97,16,22,0,3,11,14,21,0,1,21,3,113,21,0,2,21,3,29,21,0,3,17,17,21,3,4,21,3,80,7,0,22,17,21,3,69,0,21,17,21,3,4,21,3,29,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,112,21,3,50,8,21,0,2,21,3,29,21,0,4,17,17,21,2,2,21,3,9,21,3,72,21,3,7,21,3,80,21,3,7,21,0,4,8,8,21,3,79,21,3,2,19,8,21,0,2,21,3,75,16,17,25,21,0,1,21,1,8,0,7,0,22,17,21,4,9,21,1,9,0,7,0,22,19,21,4,9,15,178,8,8,0,22,0,7,21,0,1,17,17,25,21,0,2,0,6,21,1,3,17,22,1,4,12,14,21,0,1,0,6,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,0,6,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,0,13,21,3,6,17,22,1,8,12,14,21,1,6,21,1,11,16,14,21,1,7,21,1,13,21,1,4,17,25,21,0,2,0,6,0,22,17,22,1,4,12,0,12,21,1,6,17,0,8,0,23,17,0,6,22,1,8,13,14,21,0,2,25,21,0,1,0,6,0,22,17,22,1,7,12,0,12,21,1,5,17,0,6,22,1,8,13,14,21,0,1,25,21,0,1,21,1,10,21,4,0,21,1,8,8,21,0,2,17,25,21,0,1,0,16,21,1,7,21,1,13,21,1,4,17,17,25,0,22,0,6,21,0,1,17,21,2,4,16,22,2,6,12,21,2,5,16,22,2,7,12,14,21,2,6,25,21,0,1,0,17,16,21,2,5,21,0,1,7,22,2,6,13,25,21,4,3,21,0,1,0,1,16,7,21,1,4,3,2,21,4,0,0,13,21,4,7,0,21,8,8,22,1,4,12,25,21,0,1,21,4,25,21,4,80,7,16,21,4,72,16,22,2,3,12,14,21,0,1,21,4,25,21,4,68,7,16,21,4,72,21,1,4,17,22,1,4,12,25,0,23,21,4,64,21,0,2,17,21,4,68,16,22,0,3,11,21,4,79,21,0,1,17,22,0,4,11,21,3,2,16,22,0,5,11,14,21,0,1,21,0,4,3,2,0,16,21,0,5,17,21,2,3,21,0,2,21,4,67,0,23,17,21,4,72,21,0,5,17,21,4,79,21,0,3,17,17,25,21,0,1,14,0,23,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25] ,provide.concat([0,1,2,32,3,8,-1,-Infinity,Infinity,4,str("Β΄: π© must be a list"),str("Mapping: Equal-rank argument shapes don\'t agree"),str("Mapping: Argument shape prefixes don\'t agree"),str("βπ©: π© must have rank at least 1"),str("/: Replication argument must have rank 1"),str("/: Amounts to replicate must be natural numbers"),str("β½π©: π© must have rank at least 1"),str("π¨β½π©: π¨ must consist of integers"),str("βπ©: π© must have rank at least 1"),str("βπ©: π© must have rank at least 1"),str("βπ©: π© must have rank at least 1"),str("π¨βπ©: π© must be an array"),str("π¨βπ©: Indices in π¨ must be integers"),str("π¨βπ©: Indices out of range"),str(">π©: Elements of π© must have matching shapes"),str("βΎπ©: Elements of π© must all have the same rank"),str("βΎπ©: π© element rank must be at least argument rank"),str("βΎπ©: π© element shapes must be compatible"),str("βΎπ©: π© element trailing shapes must match"),str("βΎπ©: π© must be an array"),str("π¨"),str("π©: π¨ must "),str("have rank at most 1"),str("consist of integers"),str("β"),str("β"),str("Β« or Β»: π© must have rank at least 1"),str("Β« or Β»: π¨ must not have higher rank than π©"),str("Β« or Β»: Rank of π¨ must be at least rank of π© minus 1"),str("Β« or Β»: π¨ must share π©\'s major cell shape"),str("π¨βπ©: π© must be an array"),str("π¨βπ©: π¨ must have rank at most 1"),str("π¨βπ©: Length of π¨ must be at most rank of π©"),str("π¨βπ©: π¨ must consist of natural numbers"),str("π¨βπ©: Window length π¨ must be at most axis length plus one"),str("First-axis primitive: π© must have rank at least 1"),str("Multi-axis primitive: π¨ must have rank at most 1"),str("Multi-axis primitive: Length of π¨ must be at most rank of π©"),str("β₯: No monadic form"),str("β€: No monadic form"),str("Β΄: Identity not found"),str("π¨β₯π©: π¨ must have rank at most 1"),str("π¨β₯π©: π¨ must consist of natural numbers"),str("π¨β₯π©: Can\'t compute axis length when rest of shape is empty"),str("π¨β₯π©: π¨ must consist of natural numbers or β β β½ β"),str("π¨β₯π©: Shape must be exact when reshaping with β"),str("βπ©: π© must consist of natural numbers"),str("βπ©: π© must be a number or list"),str("Λ: π© must have rank at least 1"),str("π¨βΎπ©: Rank of π¨ and π© must differ by at most 1"),str("π¨βΎπ©: Cell shapes of π¨ and π© must match"),str("π¨/π©: Lengths of components of π¨ must match π©"),str("β: Grouping argument must consist of integers"),str("β: Grouping argument values cannot be less than Β―1"),str("βπ©: π© must be a list"),str("π¨βπ©: π© must be an array"),str("π¨βπ©: Compound π¨ must be a list"),str("π¨βπ©: Total rank of π¨ must be at most rank of π©"),str("π¨βπ©: Lengths of components of π¨ must be compatible with π©"),str("π¨βπ©: Indices in compound π¨ must be lists"),str("π¨βπ©: Index length in π¨ must match rank of π©"),str("π¨βπ©: Indices in π¨ must consist of integers"),str("π¨βπ©: Index out of range"),str("β or β: Rank of π¨ must be at least 1"),str("β or β: Rank of π© must be at least cell rank of π¨"),str("β or β: π¨ must be sorted"),str("pβπ© or π¨βp: p must have rank at least 1"),str("βπ© or βπ©: π© must have rank at least 1"),str("β·π©: Rank of π¨ cannot exceed rank of π©"),str("π¨βπ©: π¨ must have rank at most 1"),str("π¨βπ©: Length of π¨ must not exceed rank of π©"),str("π¨βπ©: π¨ must consist of natural numbers"),str("π¨βπ©: Skipped result axis"),str("βΌ: Inverse failed"),str("βΌ: Inverse does not exist"),str("βΌ: Inverse not found"),str("β: Repetition numbers in π¨ must be integers")]) - ,[[0,1,0,149],[2,0,3083,6],[0,0,3110,3],[0,0,3114,3],[0,0,3118,3],[1,0,3122,5],[1,0,3130,5],[2,0,3148,6],[2,0,3163,6],[2,0,3182,6],[2,0,3204,6],[2,0,3226,6],[0,0,3258,3],[0,0,3264,3],[0,0,3273,3],[0,0,3279,3],[0,0,3290,3],[0,0,3299,3],[1,0,3308,9],[0,0,3421,3],[0,0,3461,4],[0,0,3537,5],[0,0,3612,3],[1,1,3629,4],[1,1,3702,3],[0,0,3766,3],[0,0,3777,5],[2,0,3861,12],[0,0,4067,4],[0,0,4116,6],[0,0,4206,7],[0,0,4335,4],[0,0,4396,4],[0,0,4498,3],[0,0,4551,4],[1,1,4612,2],[0,0,4645,3],[0,0,4676,4],[2,0,4817,16],[1,0,5047,5],[0,0,5078,3],[0,0,5105,3],[0,0,5131,3],[0,0,5170,4],[0,0,5267,3],[0,0,5296,7],[0,0,5343,14],[1,1,5577,8],[1,0,5630,6],[1,1,5738,2],[0,0,5796,5],[0,0,5958,5],[0,0,6095,7],[0,0,6264,3],[0,0,6323,4],[1,0,6396,5],[2,1,6413,4],[0,0,6449,3],[0,0,6476,3],[0,0,6498,3],[0,0,6520,3],[0,0,6549,9],[0,0,6700,5],[1,1,6733,2],[2,0,6802,10],[2,0,6861,8],[1,0,7054,5],[0,0,7096,8],[0,0,7332,5],[0,0,7398,3],[1,0,7432,8],[0,0,7531,4],[0,0,7614,6],[0,0,7937,4],[0,0,8150,3],[0,0,8168,4],[1,0,8240,9],[1,1,8309,3],[1,0,8333,14],[1,1,8767,4],[1,0,8816,6],[0,0,8955,4],[0,0,9023,3],[0,0,9097,3],[0,0,9152,4],[0,0,9281,4],[0,0,9401,3],[2,0,9458,6],[2,0,9486,7],[0,0,9527,6],[0,0,9677,3],[0,0,9747,3],[0,0,9784,5],[0,0,9928,3],[0,0,9975,3],[0,0,10001,3],[0,0,10088,3],[1,1,10143,2],[2,0,10151,13],[1,0,10302,5],[1,1,10323,2],[1,1,10327,2],[0,0,10331,3],[0,0,10343,3],[0,0,10366,3],[1,0,10387,6],[1,0,10504,11],[1,0,10725,5],[0,0,10740,3],[0,0,10754,3],[0,0,10768,3],[1,0,10813,8],[0,0,10951,8],[0,0,11118,3],[0,0,11144,3],[0,0,11150,4],[0,0,11199,3],[0,0,11209,3],[1,0,11253,7],[0,0,11279,9],[1,0,11565,5],[0,0,11581,7],[0,0,11748,11],[0,0,11984,8],[0,0,12296,3],[0,0,12324,5],[1,0,12419,5],[0,0,12430,8],[0,0,12685,3],[0,0,12725,3],[0,0,12745,3],[1,0,12799,6],[0,0,12952,6],[0,0,13074,3],[0,0,13085,3],[0,0,13106,3],[0,0,13137,3],[0,0,13175,6],[0,0,13280,6],[0,0,13329,4],[0,0,13358,3],[0,0,13377,4],[1,1,13534,2],[0,0,13538,3],[1,0,13581,5],[1,0,13618,5],[1,0,13629,5],[0,0,13640,14],[0,0,13810,3],[0,0,13830,3],[0,0,13859,4],[0,0,13882,3],[1,0,13915,5],[0,0,13941,3],[0,0,14011,3],[0,1,14025,0],[0,0,14032,5],[0,0,14165,3],[0,0,14195,3],[0,0,14215,3],[0,0,14269,3],[0,0,14304,3],[0,0,14328,3],[0,0,14345,5],[0,0,14455,3],[0,0,14510,3],[0,0,14533,5],[0,0,14662,3],[0,0,14701,3],[0,0,14784,3],[0,0,14818,3],[0,0,14847,3],[0,0,14865,3],[0,0,14882,3],[0,0,14911,3],[0,0,14929,3],[0,0,14961,3],[0,0,15004,6],[0,0,15083,3]] + ,[[0,1,0,150],[2,0,3118,6],[0,0,3145,3],[0,0,3149,3],[0,0,3153,3],[1,0,3157,5],[1,0,3165,5],[2,0,3183,6],[2,0,3198,6],[2,0,3217,6],[2,0,3239,6],[2,0,3261,6],[0,0,3293,3],[0,0,3299,3],[0,0,3308,3],[0,0,3314,3],[0,0,3325,3],[0,0,3334,3],[1,0,3343,9],[0,0,3456,3],[0,0,3496,4],[0,0,3572,5],[0,0,3647,3],[1,1,3664,4],[1,1,3737,3],[0,0,3803,3],[0,0,3814,5],[2,0,3898,12],[0,0,4104,4],[0,0,4153,6],[0,0,4243,7],[0,0,4372,4],[0,0,4433,4],[0,0,4535,3],[0,0,4588,4],[1,1,4649,2],[0,0,4682,3],[0,0,4713,4],[2,0,4855,16],[1,0,5086,5],[0,0,5117,3],[0,0,5144,3],[0,0,5170,3],[0,0,5209,4],[0,0,5306,3],[0,0,5336,7],[0,0,5383,14],[1,1,5617,8],[1,0,5670,6],[1,1,5778,2],[0,0,5836,5],[0,0,5998,5],[0,0,6135,7],[0,0,6304,3],[0,0,6363,4],[1,0,6437,5],[2,1,6454,4],[0,0,6490,3],[0,0,6517,3],[0,0,6539,3],[0,0,6561,3],[0,0,6590,9],[0,0,6741,5],[1,1,6775,2],[2,0,6844,10],[2,0,6903,8],[1,0,7096,5],[0,0,7138,8],[0,0,7374,5],[0,0,7440,3],[1,0,7474,8],[0,0,7573,4],[0,0,7656,6],[0,0,7980,4],[0,0,8193,3],[0,0,8211,4],[1,0,8283,9],[1,1,8352,3],[1,0,8376,14],[1,1,8810,4],[1,0,8859,6],[0,0,8998,4],[0,0,9066,3],[0,0,9140,3],[0,0,9195,4],[0,0,9324,4],[0,0,9444,3],[2,0,9501,6],[2,0,9529,7],[0,0,9570,6],[0,0,9720,3],[0,0,9790,3],[0,0,9828,5],[0,0,9972,3],[0,0,10019,3],[0,0,10045,3],[0,0,10132,3],[1,1,10187,2],[2,0,10195,13],[1,0,10346,5],[1,1,10367,2],[1,1,10371,2],[0,0,10375,3],[0,0,10387,3],[0,0,10410,3],[1,0,10431,6],[1,0,10548,11],[1,0,10769,5],[0,0,10784,3],[0,0,10798,3],[0,0,10812,3],[1,0,10857,8],[0,0,10995,8],[0,0,11162,3],[0,0,11188,3],[0,0,11194,4],[0,0,11243,3],[0,0,11253,3],[1,0,11297,7],[0,0,11323,9],[1,0,11609,5],[0,0,11625,7],[0,0,11792,11],[0,0,12028,8],[0,0,12340,3],[0,0,12368,5],[1,0,12463,5],[0,0,12474,8],[0,0,12729,3],[0,0,12769,3],[0,0,12789,3],[1,0,12843,6],[0,0,12996,6],[0,0,13118,3],[0,0,13129,3],[0,0,13150,3],[0,0,13181,3],[0,0,13219,6],[0,0,13324,6],[0,0,13373,4],[0,0,13402,3],[0,0,13421,4],[1,1,13578,2],[0,0,13582,3],[1,0,13625,5],[1,0,13662,5],[1,0,13673,5],[0,0,13684,14],[0,0,13854,3],[0,0,13874,3],[0,0,13903,4],[0,0,13926,3],[1,0,13959,5],[0,0,13985,3],[0,0,14055,3],[0,1,14069,0],[0,0,14076,5],[0,0,14209,3],[0,0,14239,3],[0,0,14259,3],[0,0,14313,3],[0,0,14348,3],[0,0,14372,3],[0,0,14389,5],[0,0,14499,3],[0,0,14554,3],[0,0,14577,5],[0,0,14706,3],[0,0,14745,3],[0,0,14828,3],[0,0,14862,3],[0,0,14891,3],[0,0,14909,3],[0,0,14926,3],[0,0,14955,3],[0,0,14973,3],[0,0,15005,3],[0,0,15048,6],[0,0,15127,3]] ); // Compiler @@ -214,11 +219,6 @@ let bqn = src => run.apply(null,compile(str(src),runtime)); // Formatter let fmtnum = x => str(x==Infinity ? "β" : x==-Infinity ? "Β―β" : (""+x).replace(/-/g,"Β―")); -let type = x => typeof x === "function" ? 3+(x.m||0) - : x.sh ? 0 : 2-(typeof x === "number"); -let decompose = x => list(typeof x !== "function" ? [-1,x] - : x.glyph ? [0,x] : x.repr ? x.repr() : [1,x]); -let glyph = x => x.glyph; let fmt1 = run( [15,1,25,21,0,1,22,0,2,22,0,3,22,0,4,22,0,5,4,4,11,14,0,64,0,14,0,17,0,17,19,0,37,0,65,8,3,2,0,40,0,9,0,37,0,54,8,8,21,0,5,3,2,0,40,0,54,0,38,0,7,8,8,0,18,9,22,0,6,11,14,15,2,22,0,7,11,14,0,10,0,7,0,47,19,0,42,15,3,8,22,0,8,11,14,15,4,22,0,9,11,14,15,5,22,0,10,11,14,15,6,15,7,3,2,0,40,15,8,0,46,3,2,0,40,0,9,0,38,0,9,0,37,0,46,8,0,36,0,6,8,8,8,8,22,0,11,11,14,0,74,0,18,0,73,17,15,9,15,10,3,2,0,40,0,9,0,10,0,43,19,0,6,0,10,0,9,0,47,19,19,8,3,2,0,40,0,13,0,13,0,43,0,43,3,2,19,8,22,0,12,11,14,15,11,22,0,13,11,14,15,12,22,0,14,11,14,15,13,15,14,15,15,3,3,0,40,0,27,0,54,7,0,7,0,16,19,0,35,0,32,0,0,7,0,11,0,0,0,7,0,37,0,43,8,19,0,9,19,8,8,22,0,15,11,14,21,0,6,21,0,15,21,0,14,3,3,0,40,0,12,0,3,0,47,19,8,22,0,16,11,14,15,16,22,0,17,11,14,0,15,0,15,21,0,16,9,21,0,17,0,26,0,46,19,0,18,9,3,2,0,40,0,14,0,11,0,52,19,8,21,0,2,19,22,0,18,11,14,21,0,18,0,35,0,29,0,53,0,0,0,54,17,0,38,0,17,8,7,8,0,16,9,0,20,0,44,19,25,0,46,0,30,0,19,7,21,0,1,0,1,16,17,0,23,0,39,0,34,0,28,0,31,0,2,7,7,7,8,16,0,32,0,44,0,45,3,2,0,41,0,0,8,7,21,0,2,17,0,16,16,0,26,0,37,0,44,8,0,39,0,43,8,16,25,21,0,1,0,13,16,0,20,0,44,17,22,0,3,11,0,4,0,46,17,21,1,7,16,22,0,4,11,14,15,17,22,0,5,11,14,21,0,1,0,16,21,0,1,0,13,16,0,19,0,44,17,0,17,21,0,3,0,32,0,2,7,16,17,17,0,19,0,37,0,32,0,0,7,8,21,0,5,3,2,0,40,0,15,0,35,0,9,8,0,7,0,43,19,8,21,0,4,17,25,21,0,1,0,16,16,0,30,0,27,0,55,7,0,16,0,13,0,26,0,44,19,0,38,0,17,8,19,0,17,0,15,19,7,21,0,1,0,13,16,21,1,7,0,46,17,17,0,17,16,25,0,55,0,16,21,0,1,0,9,16,21,0,2,3,2,17,22,0,3,11,14,21,0,3,21,0,1,21,0,3,3,3,0,18,16,0,17,16,25,0,68,0,17,21,0,1,0,25,16,0,20,0,46,17,0,20,0,44,17,17,0,17,0,67,17,0,18,16,25,21,0,1,0,13,16,0,26,0,44,17,22,0,3,11,14,0,69,21,0,2,0,15,0,3,0,46,19,0,28,0,25,7,0,70,19,0,16,9,21,1,5,3,2,0,40,0,7,0,37,0,48,8,8,16,3,2,0,17,16,0,19,21,0,3,17,0,18,16,21,0,1,0,26,0,39,0,71,0,26,0,46,0,1,21,0,2,17,0,3,0,49,17,0,4,0,43,17,17,8,16,0,72,0,19,0,37,0,1,8,21,0,3,17,0,18,16,3,3,0,17,16,25,21,0,1,0,25,16,0,31,0,10,7,0,66,17,0,33,0,1,7,16,0,34,0,0,7,16,0,10,0,47,17,0,32,0,6,7,16,25,21,0,1,0,30,0,75,7,16,21,1,10,0,46,17,21,1,11,0,47,17,0,26,0,37,0,43,0,44,3,2,8,0,39,0,56,8,16,25,21,0,1,0,13,16,0,66,0,30,21,1,5,7,0,30,0,17,0,37,0,76,8,7,9,0,17,9,0,26,0,39,0,57,8,9,3,2,0,40,0,9,0,7,0,46,19,8,16,0,18,16,25,21,0,1,0,30,0,13,7,16,22,0,3,11,14,21,0,3,0,30,0,26,7,0,46,17,0,16,0,27,0,46,7,0,1,0,10,19,0,42,0,33,0,4,7,8,3,2,0,40,0,10,0,7,0,43,19,8,16,22,0,4,11,14,21,0,3,0,30,0,26,7,16,0,10,0,7,0,43,19,0,42,0,46,0,41,0,33,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,30,0,19,7,0,46,0,19,21,0,4,0,9,16,0,2,21,0,2,17,0,1,16,17,0,5,21,0,4,17,0,2,21,0,2,17,0,31,0,17,7,21,0,5,17,17,0,10,0,1,0,47,19,0,4,0,43,19,0,42,0,18,8,16,0,47,0,41,0,17,0,35,0,7,8,8,16,22,0,6,11,14,21,0,6,21,1,9,0,8,0,35,21,1,8,8,3,2,0,40,21,0,5,0,16,16,0,12,0,37,0,23,0,37,0,46,8,8,16,8,16,21,1,10,0,47,17,25,21,0,1,0,30,21,1,18,7,16,21,1,13,0,46,0,14,21,0,2,17,17,21,1,11,21,0,1,0,10,16,17,25,21,0,1,0,13,16,0,20,0,44,17,22,0,3,11,0,9,16,0,1,16,0,10,0,37,0,43,8,0,42,0,45,8,16,22,0,4,11,14,0,58,22,0,5,11,14,15,18,22,0,6,11,14,21,0,1,0,24,0,37,0,15,0,10,21,0,5,19,0,0,0,46,19,8,21,0,6,3,2,0,40,0,10,0,9,0,46,19,8,16,22,0,1,12,14,21,0,1,0,10,16,22,0,7,11,14,21,0,5,0,19,0,37,0,1,8,21,0,3,17,21,0,4,0,41,0,17,8,21,0,1,17,21,0,4,0,41,0,17,8,0,61,0,19,21,0,3,0,17,0,46,17,0,26,0,44,17,17,0,16,21,0,3,17,0,26,0,39,21,0,5,8,16,17,0,18,16,21,0,7,0,9,0,46,17,0,42,21,1,8,21,1,10,0,46,19,21,1,11,21,0,7,19,8,16,25,21,0,1,21,1,14,21,1,12,3,2,0,40,0,13,0,10,0,43,19,0,32,0,6,7,9,8,16,25,21,0,1,21,1,14,0,44,17,25,0,77,0,78,0,79,0,80,3,4,0,30,0,14,0,17,0,17,19,7,0,62,17,22,0,3,11,14,0,15,0,15,0,35,21,1,16,0,35,21,0,3,0,26,16,0,25,3,2,0,40,0,9,0,10,0,46,19,8,8,8,0,7,0,36,0,18,8,0,43,19,21,1,17,3,2,0,40,0,14,0,11,0,52,19,8,21,1,2,19,22,0,4,11,14,21,0,1,21,1,3,16,22,0,5,11,0,26,16,22,0,6,11,14,0,63,0,1,0,81,17,0,26,21,0,6,17,22,0,7,11,14,0,83,0,38,0,17,8,0,17,0,82,19,22,0,8,11,14,0,15,0,30,21,0,4,0,38,0,26,0,37,0,46,8,0,14,0,11,21,0,7,0,3,0,47,17,19,0,42,0,15,0,35,21,0,8,8,8,0,26,0,38,0,0,8,19,8,7,0,9,0,35,0,21,8,0,10,0,43,19,0,1,9,0,46,0,8,21,0,7,17,0,42,0,23,8,9,19,0,17,9,22,0,9,11,14,21,0,5,0,20,0,46,17,0,27,21,0,1,7,21,1,4,0,35,0,16,8,9,21,0,3,0,40,0,47,0,1,21,0,2,17,8,21,0,9,3,3,0,40,21,0,6,0,3,0,47,17,8,16,22,0,10,11,14,21,0,7,21,0,10,3,2,25,21,0,1,0,17,0,37,0,25,0,35,0,30,0,55,7,8,8,16,0,25,21,0,2,0,0,0,46,17,0,17,0,43,17,0,24,16,0,2,0,37,0,7,0,37,0,22,8,8,16,17,25,0,51,0,0,0,54,17,0,7,21,0,1,17,0,2,0,54,0,1,0,60,17,17,0,0,0,50,0,0,0,54,17,0,15,0,1,0,59,19,0,2,0,10,19,21,0,1,17,17,0,0,21,0,1,17,25] ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[29],runtime[30],runtime[32],runtime[35],runtime[36],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],0,-1,Infinity,1,2,5,4,127,32,3,10,' @@ -24,7 +24,7 @@ Inc β { } # Required functionality passed in as an argument -def β β¨"IsArray","Type","Log","GroupLen","GroupOrd"β© +def β β¨"Type","GetFill","Log","GroupLen","GroupOrd"β© keep β "!+-ΓΓ·ββ=β€β’β₯βββ`β" len β def+ββ keep ki β chrβkeep @@ -1,5 +1,5 @@ # BQN runtime. Requires: -# IsArray Type Log GroupLen GroupOrd !+-ΓΓ·ββ=β€β’β₯βββ`β +# Type GetFill Log GroupLen GroupOrd !+-ΓΓ·ββ=β€β’β₯βββ`β βΆ β {π¨((π¨π½π©)βπ){π½}π©} # LIMITED to number left operand result β’ β {π©} @@ -12,8 +12,9 @@ β β {(π¨β£π©)π½πΎπ©} β β {π¨((π¨πΎπ©)ββ’βΏπ){π½}π©} # LIMITED to boolean right operand result -IntβIsArrayβΆβ¨ββΈ=,0β© -NatβIsArrayβΆβ¨0βΈβ€ΓββΈ=,0β© +IsArrayβ0=Type +Intβ(1=Type)βΆβ¨0,ββΈ=β© +Natβ(1=Type)βΆβ¨0,0βΈβ€ΓββΈ=β© DeshapeβIsArrayβΆ{β¨π©β©}βΏβ₯ Pair β {β¨π©β©} β {β¨π¨,π©β©} Box β {β¨β©β₯β¨π©β©} @@ -240,7 +241,7 @@ _takeDropβ{ sh βΎβ© t β (sβΛrβΈ+)ββ(β s)-r {i π©_cβ© βπ©}β(1-1βΈ=) kΓΒ΄t Sel β ββ(β₯π©) - {Selβ©0βΈβ€βΆβ¨(Typeπ©)Λ,Selβ©}ββ’fill + {Selβ©0βΈβ€βΆβ¨(GetFillπ©)Λ,Selβ©}ββ’fill Selβ sh β₯ i } ToArray π© } @@ -271,7 +272,7 @@ ShiftAfterβ{ } FCβ{ # Fill cell "Β« or Β»: π© must have rank at least 1" ! 1β€=π© - (Type π©)β β₯β(β1ΓΒ΄β’) 1 Cell π© + (GetFill π©)β β₯β(β1ΓΒ΄β’) 1 Cell π© } Windowsβ{ @@ -339,10 +340,10 @@ Reshapeβ{ Chk β β’ β£ "π¨β₯π©: Shape must be exact when reshaping with β" ! ββΈ= aβ(2βt)βΆβ¨Chk,β,ββ©nΓ·lp sβ©pβ£βΆβ’βΏaΒ¨s - {dβΎβ©(Type d)ββπ©-nβn}β(nβΈ<)β(3=t)lpΓa + {dβΎβ©(GetFill d)ββπ©-nβn}β(nβΈ<)β(3=t)lpΓa } s sβ₯{ - π©(0<n)βΆβ¨TypeβΈ(β£β)β{ββdβn|π©}β©βl + π©(0<n)βΆβ¨GetFillβΈ(β£β)β{ββdβn|π©}β©βl }β(lβ n)d } β₯ β© Deshape β β₯ diff --git a/test/dz_comp b/test/dz_comp index 58cd2f0f..46dbf85a 100755 --- a/test/dz_comp +++ b/test/dz_comp @@ -8,8 +8,8 @@ ncβΏrtβΏprim β "-nocomp"βΏ"-rt"βΏ"-prim" β β’args GetRT β {π€: β¨refβ© β β’Import "../src/pr.bqn" provide β β¨ - 0β β‘ # IsArray - ββ¨β©β₯0βΈβ₯ # Type + β’Type # Type + ββ¨β©β₯0βΈβ₯ # GetFill ββΌ # Log β Β¨β # GroupLen βΎβββ’ # GroupOrd |
