aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-04-28 18:46:40 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-04-28 18:46:40 -0400
commit9ebe3bcdc963a47fa80606942f252ec5464cf911 (patch)
treecaf57912725fd80c0d4472c6b2614e26b8d61c09
parent8c78c3694fd5c98feb99d2e58d327d59a5785cdf (diff)
Implement runtime part 0 in JS
-rw-r--r--docs/bqn.js69
1 files changed, 55 insertions, 14 deletions
diff --git a/docs/bqn.js b/docs/bqn.js
index f347b3d0..f2e4bb57 100644
--- a/docs/bqn.js
+++ b/docs/bqn.js
@@ -91,6 +91,8 @@ let llst = l => list(l, l.length>0&&l.every(isnum)?0:undefined);
let str = s => list(Array.from(s), ' ');
let unstr = s => s.join("");
let setrepr = (r,f) => {f.repr=r; return f;}
+let m1 = m=>{let r= f =>setrepr(()=>[4,f,r ], m(f )); r.m=1; return r;}
+let m2 = m=>{let r=(f,g)=>setrepr(()=>[5,f,r,g], m(f,g)); r.m=2; return r;}
let ctrans = (c,t) => String.fromCodePoint(c.codePointAt(0)+t);
let plus = (x,w) => {
if (!has(w)) return x;
@@ -134,9 +136,16 @@ let log = (x,w) => {
}
throw Error("⋆⁼: Arguments must be numbers");
}
-let floor = (x,w) => {
- if (isnum(x)) return Math.floor(x);
- throw Error("βŒŠπ•©: Argument must be a number");
+let fc = (dy,mon,gl) => (x,w) => {
+ if (has(w)) return dy(w,x);
+ if (isnum(x)) return mon(x);
+ throw Error(gl+"𝕩: Argument must be a number");
+}
+let floor = fc(Math.min,Math.floor,"⌊");
+let ceil = fc(Math.max,Math.ceil ,"⌈");
+let abs = (x,w) => {
+ if (isnum(x)) return Math.abs(x);
+ throw Error("|𝕩: Argument must be a number");
}
let lesseq = (x,w) => {
let s=typeof w, t=typeof x;
@@ -149,10 +158,10 @@ let equals = (x,w) => {
if (typeof(x)!=="function" || !(b=x.repr)) return false;
b=b(); return a().every((e,i)=>call(runtime[18],e,b[i])); // ≑
}
-let table = f => setrepr(()=>[4,f,table], (x,w) => !has(w)
+let table = m1(f => (x,w) => !has(w)
? arr(x.map(e=>call(f,e)),x.sh)
: arr([].concat.apply([],w.map(d=>x.map(e=>call(f,e,d)))),w.sh.concat(x.sh)));
-let scan = f => setrepr(()=>[4,f,scan], (x,w) => {
+let scan = m1(f => (x,w) => {
let s=x.sh;
if (!s||s.length===0) throw Error("`: 𝕩 must have rank at least 1");
if (has(w)) {
@@ -171,11 +180,9 @@ let scan = f => setrepr(()=>[4,f,scan], (x,w) => {
}
return arr(r,s,x.fill);
});
-let cases = (f,g) => setrepr(()=>[5,f,cases,g],
- (x,w)=>has(w)?call(g,x,w):call(f,x,w));
-let catches = (f,g) => setrepr(()=>[5,f,catches,g],
+let cases = m2((f,g) => (x,w)=>has(w)?call(g,x,w):call(f,x,w));
+let catches = m2((f,g) =>
(x,w)=>{try{return call(f,x,w);}catch(e){return call(g,x,w);}});
-table.m=scan.m=1; cases.m=catches.m=2;
let group_len = (x,w) => { // β‰ Β¨βŠ” for a valid list argument
let l=x.reduce((a,b)=>Math.max(a,b),(w||0)-1);
let r=Array(l+1).fill(0);
@@ -243,11 +250,45 @@ let provide = [
,catches // ⎊
];
-let runtime_0 = run(
- [15,1,22,0,0,11,14,15,2,0,13,15,3,8,22,0,1,11,14,15,4,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,15,12,22,0,10,11,14,21,0,3,0,6,7,22,0,11,11,14,21,0,11,0,2,0,14,19,0,13,31,0,10,8,22,0,12,11,14,0,6,0,2,0,14,19,22,0,13,11,14,0,2,0,3,21,0,11,19,0,2,21,0,1,19,0,13,0,4,8,22,0,14,11,14,0,2,0,3,0,6,19,0,2,21,0,1,19,0,13,0,2,21,0,4,21,0,14,21,0,4,0,2,8,8,8,22,0,15,11,14,0,2,21,0,0,3,2,21,0,8,0,6,21,0,6,0,15,8,8,22,0,16,11,14,0,14,0,7,0,9,0,15,19,3,2,21,0,8,0,5,21,0,12,0,15,19,8,22,0,17,11,14,15,13,22,0,18,11,14,15,14,22,0,19,11,14,15,15,22,0,20,11,14,15,16,22,0,21,11,14,31,0,21,22,0,22,11,14,21,0,0,0,12,15,17,15,18,3,2,21,0,8,21,0,0,21,0,4,0,5,8,0,5,0,14,19,8,8,22,0,23,11,14,31,0,23,22,0,24,11,14,31,0,14,31,0,15,31,0,16,31,0,12,31,0,13,21,0,17,31,0,11,21,0,0,21,0,1,31,0,18,31,0,19,21,0,20,31,0,24,21,0,2,21,0,3,21,0,22,31,0,4,31,0,5,21,0,6,21,0,7,21,0,8,31,0,9,3,22,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,1,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,1,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,1,21,0,2,17,17,25,21,0,1,15,19,21,0,5,0,9,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,15,20,21,1,0,21,0,4,3,2,0,9,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,0,8,3,0,17,0,0,21,0,1,17,25,21,0,2,21,1,17,16,22,0,3,11,14,21,0,1,21,1,17,16,0,1,21,0,3,17,0,10,16,0,11,21,0,2,21,1,7,0,9,8,21,1,3,21,0,1,7,0,9,21,0,3,21,1,7,0,2,8,19,3,2,21,1,8,0,6,21,1,6,31,0,3,8,8,7,16,25,21,0,2,0,10,16,0,11,21,0,1,21,1,7,0,9,8,7,16,25,21,0,2,0,2,21,0,1,21,1,17,16,17,0,10,16,0,11,21,1,2,21,0,1,7,0,9,0,1,21,1,6,21,0,2,8,19,7,16,25,21,0,1,21,1,17,16,22,0,5,11,14,21,0,4,22,0,6,11,14,21,0,1,21,1,1,0,13,15,21,8,21,0,2,17,22,0,7,11,14,21,0,5,0,10,16,0,11,21,1,2,21,0,1,7,0,9,0,2,21,1,6,0,14,0,2,21,0,5,17,8,19,15,22,9,7,16,14,21,0,7,25,21,0,1,0,7,16,21,1,20,0,14,17,22,0,3,11,21,1,22,0,3,7,0,14,17,22,0,4,11,14,21,0,4,0,10,16,0,8,31,0,3,17,0,11,21,1,2,21,0,1,0,8,16,7,0,9,0,1,19,7,21,0,2,0,11,0,3,21,1,6,31,0,4,8,7,16,17,25,21,0,2,0,11,21,0,1,21,1,7,0,9,8,7,16,25,21,0,1,25,21,0,1,25,0,14,0,2,21,1,5,17,22,1,5,12,14,21,0,1,0,9,21,1,5,17,25,21,1,7,21,1,6,21,0,1,17,22,1,7,12,25]
- ,[provide[1],provide[6],provide[7],provide[8],provide[11],provide[12],provide[13],provide[14],provide[15],provide[16],provide[17],provide[18],provide[20],provide[21],1,0]
- ,[[0,1,0,25],[0,0,384,3],[0,0,388,3],[0,0,392,3],[1,0,396,5],[1,0,404,5],[2,0,422,6],[2,0,437,6],[2,0,456,6],[2,0,478,6],[2,0,500,6],[2,0,527,6],[0,0,559,3],[0,0,576,4],[0,0,652,3],[0,0,672,3],[1,0,712,8],[0,0,794,5],[0,0,872,3],[1,1,889,2],[1,1,893,2],[0,0,897,3],[0,0,920,3]]
-);
+let select = (x,w) => {
+ let s=x.sh, k=s.length, f=x.fill, t=w.sh, c=1;
+ if (k!==1) {for(let i=1;i<k;i++)c*=s[i];t=t.concat(s.slice(1));}
+ let r=Array(w.length*c);
+ let j=0;
+ w.forEach(i=>{for(let k=0;k<c;k++)r[j++]=x[i*c+k];});
+ return arr(r,t,f);
+}
+let fold = f => (x,w) => {
+ let l=x.sh[0];
+ let r=has(w)?w:x[l=l-1];
+ for (let i=l;i--;) r=call(f,r,x[i]);
+ return r;
+}
+let runtime_0 = [
+ floor // ⌊
+ ,ceil // ⌈
+ ,abs // |
+ ,(x,w)=>has(w)?1-lesseq(w,x):arr([x],[],tofill(x)) // <
+ ,(x,w)=>1-lesseq(x,w) // >
+ ,(x,w)=>x.sh&&x.sh.length?x.sh[0]:1 // β‰ 
+ ,(x,w)=> lesseq(w,x) // β‰₯
+ ,(x,w)=>x // ⊒
+ ,(x,w)=>has(w)?w:x // ⊣
+ ,(x,w)=>arr(w.concat(x),[w.sh[0]+x.sh[0]]) // ∾
+ ,(x,w)=>arr(x.slice(0,w),[w]) // ↑
+ ,(x,w)=>arr(x.slice(w),[x.sh[0]-w]) // ↓
+ ,select // ⊏
+ ,m1(f=>(x,w)=>f) // Λ™
+ ,m1(f=>(x,w)=>call(f,has(w)?w:x,x)) // ˜
+ ,m1(fold) // Β΄
+ ,m2((f,g)=>(x,w)=>call(f,call(g,x,w))) // ∘
+ ,m2((f,g)=>(x,w)=>call(f,call(g,x),has(w)?call(g,w):w)) // β—‹
+ ,m2((f,g)=>(x,w)=>call(g,x,call(f,has(w)?w:x))) // ⊸
+ ,m2((f,g)=>(x,w)=>call(f,call(g,x),has(w)?w:x)) // ⟜
+ ,m2((f,g)=>(x,w)=>call(g[call(f,x,w)],x,w)) // β—Ά
+ ,m2((f,g)=>(x,w)=>call(g,x,w)?call(f,x,w):x) // ⍟
+];
+
let [runtime,setPrims] = run(
[0,94,22,0,0,11,14,15,1,22,0,1,11,14,15,2,22,0,2,11,14,15,3,22,0,3,11,14,0,0,0,12,0,44,19,22,0,4,11,14,0,44,0,12,0,40,0,11,8,3,2,0,42,0,0,0,12,0,45,19,8,22,0,5,11,14,0,44,0,12,0,40,0,11,8,0,8,0,13,0,40,0,44,8,19,3,2,0,42,0,0,0,12,0,45,19,8,22,0,6,11,14,15,4,0,15,3,2,0,42,21,0,4,8,22,0,7,11,14,15,5,0,36,15,6,8,22,0,8,11,14,21,0,4,0,7,0,45,19,0,43,0,20,8,22,0,9,11,14,0,14,0,41,0,28,8,22,0,10,11,14,15,7,22,0,11,11,14,15,8,22,0,12,11,14,15,9,22,0,13,11,14,21,0,13,0,54,7,22,0,14,11,14,15,10,22,0,15,11,14,15,11,22,0,16,11,14,0,55,0,44,0,56,0,44,0,57,0,45,0,58,0,45,0,59,0,45,0,60,0,45,0,61,0,47,0,62,0,48,0,63,0,44,0,64,0,45,0,65,0,44,0,66,0,45,0,67,0,44,0,68,0,45,3,28,21,0,16,0,32,0,44,7,0,5,0,95,19,8,15,12,9,22,0,17,11,14,15,13,22,0,18,11,14,15,14,22,0,19,11,14,15,15,22,0,20,11,14,0,13,0,7,0,23,19,22,0,21,11,14,0,45,0,15,0,16,0,44,19,0,41,0,13,0,8,0,46,19,0,7,0,45,19,15,16,3,2,0,42,0,24,0,38,21,0,4,8,8,8,3,2,0,42,0,24,0,38,0,14,8,0,34,0,8,7,0,45,19,0,20,0,44,19,8,22,0,22,11,14,15,17,22,0,23,11,14,15,18,22,0,24,11,14,21,0,21,21,0,22,0,33,21,0,22,7,0,7,9,3,2,0,42,0,25,0,38,21,0,4,8,8,15,19,3,3,0,42,21,0,4,0,39,0,6,8,8,22,0,25,11,14,15,20,22,0,26,11,14,15,21,22,0,27,11,14,15,22,22,0,28,11,14,21,0,28,21,0,25,7,0,36,21,0,26,0,44,7,8,22,0,29,11,14,31,0,28,0,33,21,0,25,7,7,0,36,31,0,26,0,45,7,8,22,0,30,11,14,15,23,22,0,31,11,14,15,24,22,0,32,11,14,0,29,0,40,21,0,32,8,22,0,33,11,14,21,0,9,0,24,0,35,15,25,8,3,2,0,42,0,12,0,20,0,44,19,8,22,0,34,11,14,15,26,0,43,0,24,0,35,15,27,8,8,22,0,35,11,14,15,28,22,0,36,11,14,15,29,22,0,37,11,14,15,30,22,0,38,11,14,15,31,22,0,39,11,14,0,111,0,112,3,2,0,113,0,114,3,2,3,2,0,30,15,32,7,16,22,0,40,22,0,41,4,2,11,14,15,33,22,0,42,11,14,21,0,9,0,41,15,34,8,22,0,43,11,14,31,0,43,15,35,3,2,0,42,0,25,0,38,0,15,0,38,0,30,21,0,4,7,8,8,0,34,0,6,7,0,44,19,0,20,0,44,19,8,22,0,44,11,14,31,0,42,21,0,44,3,2,0,42,0,25,0,38,21,0,4,8,8,22,0,45,11,14,15,36,22,0,46,11,14,15,37,22,0,47,11,14,0,24,0,15,0,1,0,16,0,40,0,44,8,3,2,0,42,0,22,0,20,0,44,19,8,9,3,2,0,42,21,0,4,8,22,0,48,11,14,15,38,22,0,49,11,14,15,39,22,0,50,11,14,15,40,22,0,51,11,14,0,44,0,12,0,40,0,32,21,0,51,7,8,3,2,0,42,0,0,0,12,0,50,19,8,22,0,52,11,14,15,41,22,0,53,11,14,21,0,19,0,12,7,0,34,0,8,7,0,45,19,22,0,54,11,14,21,0,4,0,39,0,12,8,0,44,3,2,0,24,0,38,21,0,4,8,0,12,3,2,0,12,0,39,0,12,8,0,44,3,2,0,14,0,39,21,0,54,8,0,44,3,2,15,42,3,5,0,34,15,43,7,16,22,0,55,11,14,0,24,21,0,4,9,0,12,0,39,0,12,8,0,14,0,39,21,0,54,8,3,3,0,34,15,44,7,16,22,0,56,11,14,0,44,15,45,3,2,0,42,21,0,4,8,22,0,57,11,14,21,0,55,0,36,21,0,57,8,22,0,58,11,14,21,0,55,0,7,0,45,19,0,36,3,0,0,14,3,2,0,42,21,0,4,8,8,22,0,59,11,14,15,46,22,0,60,11,14,21,0,58,0,38,0,5,8,0,25,0,24,19,22,0,61,11,14,0,15,0,38,0,1,0,35,0,24,8,0,34,21,0,61,0,35,0,24,8,7,3,2,0,42,0,22,0,20,0,44,19,8,8,22,0,62,11,14,15,47,22,0,63,11,14,21,0,4,0,43,0,26,21,0,63,15,48,8,8,22,0,64,11,14,15,49,22,0,65,11,14,15,50,22,0,66,11,14,21,0,4,0,5,0,128,19,0,25,15,51,31,0,63,21,0,64,21,0,66,21,0,65,3,2,0,42,0,30,0,12,0,12,0,45,19,7,0,34,0,8,7,0,45,19,8,31,0,66,3,3,0,42,0,12,0,11,0,46,19,8,8,19,22,0,67,11,14,0,24,0,24,0,24,0,34,15,52,7,9,15,53,15,54,15,55,3,6,0,42,0,25,8,22,0,68,11,14,15,56,22,0,69,11,14,15,57,22,0,70,11,14,21,0,70,0,139,0,19,0,41,0,12,8,0,7,0,45,19,15,58,3,3,7,22,0,71,11,14,31,0,70,0,140,0,12,0,40,0,44,8,0,7,0,45,19,15,59,3,3,7,22,0,72,11,14,15,60,22,0,73,11,14,15,61,22,0,74,11,14,15,62,22,0,75,11,14,15,63,22,0,76,11,14,15,64,22,0,77,11,14,15,65,22,0,78,11,14,15,66,22,0,79,11,14,15,67,22,0,80,11,14,0,24,0,35,0,22,0,12,0,44,19,0,7,0,45,19,21,0,80,15,68,15,69,3,2,0,42,0,25,0,38,0,12,8,0,20,0,44,19,8,8,8,22,0,81,11,14,0,4,0,40,21,0,60,0,45,7,8,22,0,82,11,14,15,70,22,0,83,11,14,21,0,83,0,24,0,31,0,6,7,0,49,19,0,33,0,29,7,0,33,0,29,0,40,21,0,32,8,0,38,21,0,29,0,38,21,0,82,8,8,7,19,7,22,0,84,11,14,0,52,0,17,16,21,0,12,0,156,8,22,0,85,11,14,15,71,22,0,86,11,14,0,15,0,36,21,0,7,8,22,0,87,11,14,15,72,22,0,88,11,14,15,73,22,0,89,11,14,15,74,0,40,21,0,9,8,22,0,90,11,14,15,75,22,0,91,11,14,21,0,20,0,9,7,22,0,92,11,14,21,0,20,0,10,7,22,0,93,11,14,0,33,21,0,92,0,41,21,0,93,8,7,0,36,0,46,21,0,92,16,0,41,21,0,93,8,8,22,0,94,11,14,21,0,20,15,76,0,36,0,19,8,7,22,0,95,11,14,21,0,20,15,77,0,36,0,11,8,7,22,0,96,11,14,21,0,20,15,78,0,36,0,7,0,38,21,0,96,0,38,0,7,8,8,8,7,22,0,97,11,14,21,0,20,0,8,7,0,36,0,29,0,40,21,0,29,8,8,22,0,98,11,14,21,0,20,0,8,0,7,0,6,19,7,0,36,0,29,0,40,21,0,30,8,8,22,0,99,11,14,21,0,20,0,8,0,36,0,21,0,7,0,20,19,0,40,0,44,8,8,7,22,0,100,11,14,21,0,20,0,23,0,7,0,45,19,7,0,36,0,20,8,22,0,101,11,14,21,0,20,0,13,0,7,0,45,19,7,0,36,31,0,64,8,22,0,102,11,14,21,0,20,0,12,0,7,0,45,19,7,0,36,0,22,8,22,0,103,11,14,21,0,20,0,12,7,0,36,0,12,8,22,0,104,11,14,21,0,20,0,23,7,0,36,0,32,0,44,7,0,5,0,168,19,8,22,0,105,11,14,21,0,20,0,13,7,0,36,0,32,0,44,7,0,5,0,169,19,8,22,0,106,11,14,21,0,20,0,6,7,22,0,107,11,14,21,0,20,0,7,7,22,0,108,11,14,21,0,108,21,0,107,0,45,19,22,0,109,11,14,0,25,21,0,104,21,0,104,21,0,103,21,0,58,21,0,59,3,4,19,0,34,21,0,107,7,9,0,43,15,79,8,22,0,110,11,14,15,80,22,0,111,11,14,15,81,22,0,112,11,14,15,82,22,0,113,11,14,15,83,22,0,114,11,14,15,84,22,0,115,11,14,21,0,61,0,35,21,0,87,0,39,0,26,8,15,85,3,2,0,42,21,0,104,21,0,101,0,45,19,0,39,21,0,99,8,8,8,22,0,116,11,14,15,86,22,0,117,11,14,31,0,78,0,36,21,0,77,8,22,0,118,11,14,0,44,21,0,80,31,0,37,8,0,36,21,0,36,8,22,0,119,11,14,31,0,81,0,36,21,0,32,8,22,0,120,11,14,21,0,61,0,36,0,24,8,0,35,21,0,74,0,36,31,0,74,0,40,21,0,76,8,8,8,22,0,121,11,14,21,0,61,0,36,0,24,8,0,35,21,0,75,0,36,31,0,75,0,40,31,0,76,8,8,8,22,0,122,11,14,15,87,22,0,123,11,14,31,0,71,0,36,31,0,38,8,22,0,124,11,14,31,0,72,0,36,31,0,39,8,22,0,125,11,14,31,0,91,0,36,31,0,89,8,22,0,126,11,14,21,0,31,0,45,7,0,36,31,0,84,8,22,0,127,11,14,0,33,31,0,31,0,44,7,7,0,36,31,0,83,0,24,7,8,22,0,128,11,14,21,0,114,22,0,129,11,14,21,0,9,0,39,15,88,8,22,0,130,11,14,21,0,29,0,38,21,0,29,8,0,29,21,0,108,0,24,19,0,33,21,0,127,7,19,0,1,0,44,19,22,0,131,11,14,15,89,0,1,0,44,19,22,0,132,11,14,15,90,22,0,133,11,14,0,24,0,35,15,91,8,22,0,134,11,14,15,92,22,0,135,11,14,15,93,22,0,136,11,14,15,94,22,0,137,11,14,15,95,22,0,138,11,14,15,96,22,0,139,11,14,0,45,0,24,15,97,0,38,0,44,0,16,0,40,0,32,0,45,7,21,0,108,21,0,103,19,8,31,0,13,0,69,7,9,3,2,0,42,0,16,0,40,0,44,8,21,0,104,0,53,19,8,8,9,3,2,0,42,0,0,21,0,106,0,50,19,8,22,0,140,11,14,15,98,0,39,15,99,8,22,0,141,11,14,15,100,22,0,142,11,14,15,101,0,24,0,16,0,40,0,45,8,15,102,9,0,32,0,32,0,44,7,0,5,0,187,19,7,0,16,0,40,0,46,8,21,0,141,0,16,0,40,0,45,8,19,31,0,142,0,16,0,40,0,46,8,15,103,0,41,15,104,8,0,16,0,40,0,45,8,19,0,16,0,40,0,46,8,15,105,0,41,15,106,8,0,29,0,40,0,45,0,50,3,2,8,19,3,6,0,42,0,25,8,0,16,0,40,0,44,8,19,9,22,0,143,11,14,15,107,31,0,143,0,32,0,44,7,0,5,0,188,19,3,3,21,0,120,0,50,0,45,0,46,3,3,17,0,42,0,0,8,22,0,144,11,14,31,0,116,0,36,21,0,67,8,22,0,145,11,14,0,5,0,40,0,189,8,22,0,146,11,14,0,5,0,40,0,190,8,22,0,147,11,14,0,32,0,44,7,0,5,0,191,19,22,0,148,11,14,15,108,22,0,149,11,14,15,109,22,0,150,11,14,15,110,22,0,151,11,14,0,24,0,35,0,45,31,0,80,31,0,47,8,0,40,21,0,9,8,0,36,31,0,46,8,8,22,0,152,11,14,0,55,0,33,21,0,108,7,0,36,21,0,107,8,0,56,21,0,108,0,57,0,33,21,0,92,7,0,36,21,0,100,21,0,149,0,24,8,8,0,58,21,0,92,0,59,21,0,20,0,2,7,0,70,0,33,21,0,93,7,0,36,0,33,21,0,100,7,8,0,64,0,33,21,0,92,7,0,36,21,0,98,21,0,149,0,24,8,8,0,63,0,25,21,0,108,0,45,19,21,0,92,0,33,21,0,108,7,19,0,36,21,0,99,21,0,149,0,24,8,8,0,60,21,0,109,0,71,0,44,0,38,21,0,146,8,0,36,15,111,8,0,72,0,24,0,73,21,0,58,0,38,21,0,147,8,0,25,0,24,19,0,36,0,24,8,0,54,15,112,0,36,0,44,0,38,21,0,146,8,8,0,74,15,113,0,36,15,114,8,0,75,0,44,0,38,21,0,146,8,0,36,21,0,124,21,0,149,0,16,0,40,0,49,8,8,8,0,76,0,44,0,38,21,0,146,8,0,36,21,0,125,21,0,149,0,16,0,40,0,44,8,8,8,0,77,0,44,0,38,21,0,146,8,0,36,21,0,118,21,0,149,21,0,59,8,8,0,78,21,0,119,0,40,21,0,108,8,0,36,21,0,119,8,0,79,31,0,136,0,36,31,0,35,8,0,80,0,44,0,38,21,0,146,8,0,36,15,115,8,0,81,31,0,151,0,36,31,0,150,8,3,42,21,0,16,21,0,148,8,22,0,153,11,14,0,55,0,33,21,0,108,7,0,36,0,46,0,41,21,0,92,8,8,0,56,21,0,107,0,36,0,44,0,38,21,0,146,8,8,0,57,0,33,21,0,92,7,0,36,21,0,94,8,0,58,21,0,100,0,36,0,44,0,38,21,0,146,8,8,0,59,21,0,94,0,36,0,44,0,38,21,0,146,8,8,0,70,0,2,21,0,92,9,0,36,0,44,0,38,21,0,146,8,8,0,64,0,33,21,0,92,7,0,36,21,0,94,8,0,63,0,25,21,0,108,0,45,19,21,0,92,0,33,21,0,108,7,19,0,36,21,0,109,0,38,21,0,94,8,21,0,109,9,8,0,60,0,32,0,45,7,21,0,108,21,0,107,19,0,36,0,44,0,38,21,0,146,8,8,3,18,21,0,16,21,0,148,8,22,0,154,11,14,15,116,22,0,155,11,14,0,82,21,0,154,0,83,15,117,0,84,15,118,0,85,15,119,0,86,15,120,0,38,15,121,8,3,10,21,0,16,0,32,21,0,148,7,8,22,0,156,11,14,31,0,117,22,0,157,11,14,31,0,53,22,0,158,11,14,15,122,0,87,31,0,141,0,88,15,123,0,89,15,124,0,90,0,32,0,44,0,38,21,0,146,8,7,15,125,15,126,3,2,0,42,21,0,106,0,40,0,44,8,8,3,2,0,42,0,24,0,38,21,0,5,8,8,0,91,15,127,0,92,15,128,15,129,0,24,3,2,0,42,0,25,8,0,25,0,38,21,0,140,8,19,0,93,15,130,3,14,31,0,16,0,32,21,0,148,7,8,7,22,0,159,11,14,31,0,18,22,0,160,11,14,31,0,115,22,0,161,11,14,31,0,139,22,0,162,11,14,21,0,45,0,36,31,0,48,8,22,0,163,11,14,15,131,22,0,164,11,14,31,0,113,22,0,165,11,14,21,0,86,0,36,21,0,7,8,22,0,166,11,14,31,0,61,0,36,0,24,8,0,35,21,0,8,0,38,21,0,102,8,8,22,0,167,11,14,31,0,135,0,36,31,0,34,8,22,0,168,11,14,31,0,132,0,36,21,0,131,8,22,0,169,11,14,31,0,130,0,36,21,0,120,0,40,21,0,128,8,8,22,0,170,11,14,21,0,107,21,0,108,21,0,100,21,0,92,31,0,93,31,0,94,21,0,96,21,0,97,21,0,95,21,0,109,21,0,98,21,0,99,21,0,101,21,0,102,21,0,103,21,0,104,21,0,106,21,0,105,21,0,58,21,0,59,0,25,0,24,31,0,166,21,0,145,31,0,167,21,0,124,21,0,125,21,0,118,31,0,122,21,0,121,21,0,119,31,0,168,21,0,120,21,0,29,21,0,30,21,0,152,21,0,163,21,0,127,31,0,169,21,0,128,31,0,170,21,0,126,0,5,0,32,0,33,21,0,79,21,0,60,21,0,155,31,0,162,31,0,160,31,0,161,0,31,0,38,0,39,0,40,0,41,21,0,158,0,36,31,0,164,21,0,129,31,0,165,21,0,157,0,37,3,63,15,132,16,25,0,44,21,0,1,3,2,25,21,0,1,25,21,0,1,22,1,1,22,1,2,4,2,12,25,21,0,1,3,1,0,1,21,0,1,17,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,0,20,0,30,0,12,0,7,0,45,19,7,21,0,1,19,0,31,0,8,7,9,0,34,0,6,7,9,25,0,32,21,1,0,0,30,21,1,11,21,0,1,7,0,33,0,16,7,21,0,2,19,7,16,7,0,16,15,133,19,25,15,134,0,12,21,0,1,21,1,11,21,1,0,7,16,19,25,0,46,0,9,21,0,1,0,22,16,17,0,17,16,0,30,0,8,0,40,0,46,8,7,16,22,0,3,11,14,21,0,1,0,29,21,0,3,17,21,0,1,0,29,31,0,3,0,30,0,6,0,40,0,45,8,7,16,17,3,2,25,21,0,2,21,1,15,16,22,0,3,22,0,4,4,2,11,14,21,0,1,3,1,0,26,31,0,4,17,21,1,12,31,0,3,8,25,0,44,21,0,1,16,25,21,0,1,0,12,16,0,12,0,45,17,0,5,0,96,17,14,21,0,1,0,32,21,0,4,7,21,1,17,9,0,34,21,0,4,7,3,2,0,42,0,45,0,36,0,22,0,20,0,44,19,8,8,21,0,2,17,25,15,135,22,0,2,11,14,15,136,22,0,3,11,14,21,0,3,21,0,1,7,0,33,31,0,3,0,33,21,0,1,7,7,7,3,2,0,42,0,12,0,39,0,21,8,8,31,0,2,21,0,1,7,3,2,0,42,0,12,0,39,0,12,8,8,25,15,137,21,0,1,7,22,0,2,11,14,21,0,1,21,0,2,0,35,15,138,15,139,3,2,0,42,21,1,4,0,39,0,21,8,8,0,36,0,30,21,0,2,7,8,8,21,0,2,0,35,21,1,19,21,0,2,7,8,3,3,0,42,21,1,4,0,39,0,6,8,8,25,21,0,1,21,1,22,21,0,2,17,25,21,0,1,0,30,0,20,0,40,0,44,8,7,0,34,0,8,7,0,45,19,0,39,0,7,8,21,0,2,17,22,0,3,11,14,21,0,1,21,0,3,0,44,3,2,15,140,3,2,0,42,0,44,0,12,31,0,3,17,8,21,0,2,17,25,21,0,4,22,0,5,11,14,0,44,0,25,21,0,2,17,22,0,6,11,14,21,0,1,22,0,7,11,14,15,141,22,0,8,11,14,31,0,8,21,0,7,0,12,0,45,17,0,43,0,32,21,0,5,7,15,142,0,36,0,24,8,21,0,2,19,8,16,25,21,0,1,0,14,0,39,21,1,23,8,21,0,2,17,22,0,3,11,14,31,0,3,0,34,21,1,24,21,0,1,0,15,16,0,41,0,16,8,0,41,21,1,25,0,40,21,0,2,0,15,16,0,41,0,16,8,8,8,7,7,16,22,0,4,11,14,0,44,0,33,31,0,4,7,16,25,21,0,1,22,0,2,11,14,21,1,25,21,1,21,0,32,0,44,7,0,13,21,1,25,19,0,13,3,4,21,0,1,0,43,0,30,15,143,7,8,16,22,0,3,11,14,15,144,0,1,0,44,19,25,21,0,1,22,0,2,11,14,0,20,0,40,0,44,8,0,43,15,145,8,25,21,0,2,0,12,16,0,33,0,7,7,0,45,17,22,0,5,11,14,21,0,5,0,13,0,44,17,0,5,0,100,17,14,21,0,1,0,12,16,0,13,21,0,5,17,0,5,0,101,17,14,21,0,1,21,1,9,16,22,0,1,12,14,21,0,2,21,1,10,0,45,17,22,0,6,11,0,34,0,8,7,0,45,17,22,0,7,11,14,21,0,7,21,1,24,21,0,2,0,15,16,0,41,0,16,8,0,39,21,0,4,8,7,16,22,0,8,11,14,21,0,2,0,22,16,0,45,0,45,0,41,0,7,0,38,0,17,8,8,0,30,0,8,0,40,21,0,7,8,0,38,0,6,0,40,31,0,7,8,0,41,0,32,0,44,7,0,13,31,0,8,19,8,8,7,9,0,34,0,8,7,0,45,19,3,2,0,42,0,20,0,40,0,44,8,8,16,0,5,0,102,17,14,21,0,1,0,12,16,0,33,0,7,7,31,0,5,17,22,0,9,11,14,21,0,1,21,1,10,21,0,9,17,22,0,10,11,14,21,0,10,21,1,23,21,0,6,17,22,0,11,11,14,31,0,11,0,34,21,1,24,21,0,1,0,15,16,0,41,0,16,8,0,41,21,0,4,0,40,21,0,2,0,15,16,0,41,0,16,8,8,8,7,7,16,22,0,12,11,14,0,32,0,44,7,0,13,31,0,12,0,40,0,8,0,40,31,0,6,0,34,0,8,7,0,45,17,8,8,19,22,0,13,11,14,31,0,9,0,17,16,0,30,21,0,1,0,14,16,0,41,0,16,8,7,16,0,24,0,34,0,8,7,0,45,19,0,17,9,0,41,0,15,8,16,0,30,0,8,0,40,31,0,10,0,34,0,8,7,0,45,17,8,7,16,0,30,15,146,0,40,21,0,2,0,22,16,8,7,16,0,1,0,44,17,25,21,0,1,22,0,2,11,14,0,34,0,8,7,0,7,0,45,19,0,31,0,8,7,0,34,0,6,7,9,3,2,0,16,21,0,1,17,22,0,3,11,14,15,147,0,1,0,44,19,25,21,0,1,0,12,16,0,12,0,45,17,0,5,0,105,17,14,21,0,1,0,22,16,22,0,3,11,14,21,0,1,21,0,3,0,20,0,44,17,0,43,15,148,8,16,0,1,0,44,17,25,21,0,1,0,22,16,22,0,3,11,14,21,0,1,21,1,10,0,45,17,22,0,4,11,0,34,0,8,7,0,45,17,22,0,5,11,14,31,0,3,0,17,16,0,30,0,32,21,0,1,0,15,16,7,0,16,0,8,0,40,21,0,5,8,0,41,0,6,8,19,7,31,0,5,0,17,16,0,15,31,0,4,17,17,25,21,0,1,21,1,4,16,21,1,147,16,14,21,0,1,0,12,16,0,20,0,44,17,25,21,0,1,0,12,16,0,33,0,7,7,0,45,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,31,0,4,0,27,31,0,3,17,22,0,6,11,14,21,0,6,0,34,0,8,7,0,45,17,0,17,16,0,15,31,0,6,17,0,30,0,32,21,0,1,0,15,16,7,0,16,0,8,0,40,21,0,5,8,0,41,0,6,8,19,7,31,0,5,0,17,16,17,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,107,17,14,21,0,1,0,22,16,22,0,3,11,14,21,0,1,0,29,21,0,3,0,17,16,0,30,0,7,0,40,0,45,0,7,31,0,3,17,8,7,16,17,25,21,0,2,21,1,5,16,0,5,0,108,17,14,21,0,1,0,22,16,22,0,3,11,14,0,44,0,12,21,0,3,17,0,6,21,0,3,17,0,9,21,0,2,17,0,11,16,0,8,21,0,3,17,0,7,22,0,2,13,14,21,0,1,0,29,21,0,3,0,17,16,0,30,0,24,0,13,21,0,2,0,7,21,0,3,17,19,0,8,31,0,3,19,0,7,0,24,19,0,6,21,0,2,19,7,16,17,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,109,17,14,21,0,1,0,22,16,0,6,0,45,17,0,17,16,0,30,21,0,1,0,41,0,29,0,40,0,17,8,8,7,16,0,1,0,40,0,16,0,40,0,44,8,8,16,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,110,17,14,21,0,1,0,22,16,22,0,3,11,14,21,0,3,0,6,0,45,17,0,17,16,0,30,21,0,1,0,41,0,29,0,40,15,149,8,8,7,16,0,1,0,40,0,16,0,40,21,0,3,8,8,16,25,21,0,1,22,0,3,22,0,4,4,2,11,14,15,150,22,0,5,11,14,0,24,0,38,21,1,5,8,0,5,31,0,3,19,0,25,0,6,21,0,5,0,13,0,40,0,44,8,7,9,31,0,5,0,21,7,3,2,0,42,0,13,0,40,0,44,8,8,19,25,21,0,1,0,12,16,0,12,0,45,17,0,5,0,115,17,14,21,0,2,21,1,40,21,0,1,0,22,16,17,0,33,0,16,7,21,0,1,17,25,21,0,2,0,12,16,0,12,0,45,17,0,5,0,116,17,14,21,0,1,0,14,16,22,0,3,11,0,22,0,39,0,12,8,21,0,2,17,0,5,0,117,17,14,0,44,22,0,4,11,14,21,0,2,0,22,16,0,17,16,0,30,31,0,3,0,41,0,16,8,15,151,21,0,2,0,41,0,16,8,19,7,16,14,21,0,1,21,1,7,16,0,16,21,0,4,17,25,21,0,2,0,30,21,0,1,0,41,21,1,44,8,7,16,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,118,17,14,21,0,1,0,22,16,0,20,0,44,17,0,5,0,119,17,14,21,0,1,0,29,0,44,0,20,16,17,25,21,0,2,21,1,4,16,0,5,0,120,17,14,21,0,1,0,29,0,40,0,30,21,1,41,0,40,21,0,1,0,22,16,8,7,8,21,0,2,17,25,21,0,1,21,1,1,16,22,0,3,11,14,21,0,3,0,16,0,44,17,0,44,0,41,0,13,8,0,32,31,0,3,7,0,28,0,45,19,0,30,21,0,0,7,9,0,34,0,8,7,0,45,19,3,2,0,42,0,13,0,40,0,46,8,8,16,25,21,0,1,15,152,0,25,21,1,49,9,0,43,15,153,8,3,2,0,42,0,25,0,38,0,0,8,0,13,0,50,19,8,21,0,2,17,25,21,0,1,25,21,0,1,21,0,5,0,39,21,0,4,8,21,0,2,17,22,0,6,11,14,21,1,36,0,34,0,24,21,1,4,9,0,43,0,15,0,41,0,16,8,8,7,21,0,1,19,0,44,0,14,0,24,0,34,0,8,7,0,45,19,0,17,9,0,41,0,15,8,9,3,2,0,42,21,1,4,8,9,22,0,7,11,14,15,154,22,0,8,11,14,21,1,1,0,44,0,16,0,40,0,46,8,0,12,0,32,21,0,8,7,19,3,2,0,42,0,16,0,40,0,44,8,0,12,0,52,19,8,9,22,0,9,11,14,21,0,5,21,1,69,21,0,9,17,22,0,10,11,14,0,44,21,0,8,0,49,8,22,0,11,11,14,31,0,11,31,0,10,16,0,44,21,1,51,3,2,21,1,1,0,29,0,45,0,50,3,2,19,3,2,0,42,31,0,9,8,16,22,0,12,22,0,13,4,2,11,14,0,24,0,38,21,1,52,8,0,7,0,45,19,0,43,15,155,8,22,0,14,11,14,0,24,0,35,15,156,8,22,0,15,11,14,31,0,13,31,0,14,21,0,6,17,0,32,21,0,1,7,0,41,31,0,15,8,0,32,21,0,5,7,21,1,144,9,15,157,9,3,2,0,42,21,1,52,8,16,25,21,0,1,21,1,19,21,1,55,7,21,0,2,17,0,15,16,0,34,0,8,7,0,45,17,25,21,0,2,0,16,0,45,17,21,0,1,3,2,0,42,21,0,2,0,16,0,44,17,8,25,0,44,21,0,1,3,2,0,42,21,0,2,8,25,21,0,1,0,15,16,0,30,21,1,57,7,16,0,34,0,18,7,0,44,17,0,6,0,45,17,25,21,0,1,21,1,9,0,39,21,0,4,21,1,50,21,1,19,21,0,4,7,0,36,0,30,21,0,4,7,8,8,8,21,0,2,17,25,0,1,0,41,0,24,0,35,0,32,3,0,7,0,15,21,1,59,0,39,21,0,2,8,19,8,8,21,1,62,0,24,0,35,0,25,8,21,0,1,19,3,2,0,42,0,15,0,38,0,22,8,0,20,0,44,19,8,25,21,0,1,0,15,16,0,16,0,44,17,21,1,59,16,22,0,3,11,14,21,0,1,0,15,16,0,30,21,1,59,0,44,21,1,54,3,2,0,42,0,22,0,39,0,12,8,8,21,0,3,19,0,5,0,122,19,7,16,14,21,0,3,0,34,0,8,7,0,45,17,0,17,16,0,15,31,0,3,17,0,30,0,33,0,16,7,7,21,0,1,0,30,21,1,7,7,16,17,25,0,49,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,30,0,22,7,16,21,1,32,16,0,30,15,158,7,16,25,21,0,1,0,15,16,22,0,3,11,0,22,16,22,0,4,11,14,21,0,3,0,30,21,1,59,7,16,22,0,5,11,14,21,0,5,0,16,0,44,17,0,22,16,22,0,6,11,14,21,0,1,0,12,16,22,0,7,11,14,21,0,5,0,30,0,22,0,12,21,0,6,19,7,16,0,34,0,8,7,0,45,17,0,5,0,123,17,14,21,0,7,0,23,21,0,6,17,0,5,0,124,17,14,15,159,22,0,8,11,14,21,0,1,21,1,59,16,22,0,9,11,14,0,45,22,0,10,11,14,0,44,0,20,16,22,0,11,11,22,0,12,11,14,21,0,7,0,17,16,21,1,60,15,160,7,21,0,9,21,1,36,16,21,0,8,0,8,7,0,45,17,21,1,36,16,17,14,21,1,60,15,161,31,0,3,0,30,0,15,7,16,7,7,22,0,13,11,14,21,0,11,21,0,13,15,162,3,2,0,42,31,0,6,0,20,21,0,7,17,8,21,0,12,17,25,21,0,2,0,22,16,22,0,3,11,14,21,0,1,0,22,16,22,0,4,11,14,21,0,3,0,23,21,0,4,17,0,5,0,127,17,14,31,0,4,0,17,16,0,30,21,0,1,0,41,0,16,8,0,41,0,8,0,40,21,0,2,0,41,0,16,8,8,0,24,3,2,0,42,0,25,0,13,31,0,3,19,8,8,7,16,25,21,0,1,21,0,2,9,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,31,0,5,31,0,4,31,0,3,19,25,21,0,1,22,0,3,22,0,4,4,2,11,14,31,0,4,31,0,3,7,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,31,0,5,31,0,4,31,0,3,8,25,0,32,21,1,51,7,22,0,0,11,14,15,163,22,0,1,11,14,0,0,0,23,0,50,19,0,43,21,0,1,21,1,52,7,8,22,0,2,11,14,15,164,22,0,3,11,14,15,165,22,0,4,11,14,15,166,22,0,5,11,14,0,129,0,24,0,130,0,44,21,0,3,0,45,8,21,0,4,9,0,131,0,45,21,0,3,0,44,8,21,0,4,9,0,132,0,45,21,0,3,0,45,8,31,0,4,9,0,133,0,45,21,0,3,0,45,8,31,0,5,9,0,134,0,45,31,0,3,0,45,8,3,12,21,1,15,16,22,0,6,22,0,7,4,2,11,14,15,167,3,1,0,26,31,0,7,21,1,33,0,40,0,30,0,22,7,8,21,0,6,17,17,21,1,12,31,0,6,21,1,65,16,8,22,0,8,11,14,15,168,22,0,9,11,14,15,169,0,41,0,24,0,16,0,45,19,31,0,9,0,25,19,21,0,2,9,0,32,0,32,21,1,51,7,7,15,170,21,1,68,0,16,0,40,0,44,8,19,0,24,0,16,0,45,19,31,0,2,9,3,4,0,42,0,24,0,16,0,44,19,0,38,0,50,0,24,0,46,3,2,0,42,0,13,0,40,0,46,8,8,3,2,0,42,0,13,0,40,0,44,8,8,8,8,8,25,21,0,1,22,0,2,22,0,3,22,0,4,4,3,11,14,0,136,0,26,31,0,2,17,0,26,0,135,17,22,0,5,11,14,0,137,22,0,6,11,14,0,138,22,0,7,11,14,15,171,25,21,0,1,0,19,16,22,0,5,11,0,20,0,40,21,0,2,8,0,43,21,0,4,8,16,14,31,0,5,0,17,16,0,30,21,0,1,0,6,21,0,2,17,0,41,0,6,8,7,0,30,0,44,0,41,0,20,8,0,43,0,48,8,7,9,0,30,0,13,0,40,21,0,2,8,0,43,0,48,8,7,3,2,0,42,21,0,1,0,20,0,44,17,8,16,25,21,0,1,14,0,6,0,18,0,44,19,0,17,9,0,7,0,18,0,44,19,0,17,9,0,30,0,6,7,0,24,0,38,0,20,8,19,3,2,0,42,0,20,0,40,0,44,8,8,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,141,17,14,21,0,2,0,12,0,39,0,7,8,21,0,1,17,22,0,3,11,14,21,0,3,0,13,0,44,17,0,5,0,142,17,14,21,0,3,0,23,0,45,17,0,5,0,143,17,14,21,0,1,21,1,10,0,45,17,22,0,4,11,14,21,0,2,21,1,59,16,0,28,31,0,3,0,7,0,45,17,17,21,1,54,21,0,4,17,0,5,0,144,17,14,31,0,4,0,34,0,8,7,0,45,17,25,21,0,1,21,1,73,21,0,2,17,22,0,3,11,14,21,0,2,0,45,0,22,3,2,0,42,0,24,0,12,0,39,0,13,8,21,0,1,19,8,16,0,8,21,0,3,17,22,0,4,11,14,21,0,1,0,22,16,0,8,31,0,3,17,0,17,16,0,30,21,0,2,21,1,7,16,0,41,0,16,8,0,32,21,0,1,0,15,16,7,0,16,21,0,4,0,41,0,7,8,19,3,2,0,42,0,13,0,40,31,0,4,8,8,7,16,0,15,21,0,1,21,1,59,16,17,25,21,0,1,21,1,73,21,0,2,17,22,0,3,11,14,21,0,1,0,22,16,0,8,21,0,3,17,22,0,4,11,14,21,0,2,0,45,0,22,3,2,0,42,0,24,0,12,0,39,0,13,8,21,0,1,19,8,16,0,8,31,0,3,17,22,0,5,11,14,21,0,5,0,7,21,0,4,17,22,0,6,11,14,31,0,4,0,17,16,0,30,0,32,21,0,1,0,15,16,7,0,16,31,0,5,0,41,0,6,8,19,0,32,21,0,2,21,1,7,16,7,0,16,21,0,6,0,41,0,7,8,19,3,2,0,42,0,13,0,40,31,0,6,8,8,7,16,0,15,21,0,1,21,1,59,16,17,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,141,17,14,21,0,1,21,1,10,0,45,17,0,24,0,34,0,8,7,0,45,19,0,17,9,0,41,0,15,8,16,0,30,21,0,1,0,1,16,7,16,25,15,172,22,0,3,11,14,15,173,22,0,4,11,14,21,0,1,21,0,3,31,0,4,3,2,0,42,21,1,4,8,16,25,21,0,2,0,12,16,0,23,0,45,17,0,5,0,147,17,14,21,0,2,21,1,7,16,22,0,2,12,0,22,16,22,0,3,11,14,21,0,1,21,0,3,0,20,0,44,17,0,43,0,24,0,35,15,174,8,8,21,0,2,17,25,21,0,1,0,49,21,1,114,21,0,4,8,21,0,2,17,25,21,0,1,22,0,3,11,14,21,1,9,0,41,15,175,15,176,3,2,0,42,0,25,0,38,21,1,58,0,20,21,0,2,19,8,8,8,25,21,0,2,21,1,4,0,43,0,15,0,16,0,44,19,8,16,22,0,2,12,14,21,0,2,21,1,6,16,0,5,0,106,17,14,21,0,2,22,0,3,11,22,0,4,11,14,21,0,1,0,29,21,0,1,0,22,16,0,8,21,0,3,17,0,17,16,0,31,0,33,15,177,0,43,15,178,8,7,7,16,17,25,21,0,1,0,22,0,39,0,12,8,21,0,2,17,0,5,0,154,17,14,21,0,1,21,1,33,21,0,2,17,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,155,17,14,21,0,1,21,1,29,16,22,0,5,11,14,21,0,1,0,22,16,0,17,16,0,30,0,45,0,24,21,0,1,0,12,0,20,0,45,19,0,43,21,1,79,0,20,7,8,16,0,29,21,0,5,17,0,41,0,16,8,0,39,21,1,59,8,0,45,0,41,0,7,8,19,3,2,0,42,0,20,0,40,0,44,8,8,7,16,21,0,4,21,0,5,17,0,29,31,0,5,21,1,82,16,17,0,1,0,44,17,25,21,0,2,0,12,16,0,23,0,45,17,0,5,0,157,17,14,21,0,2,21,1,7,16,22,0,3,11,14,21,0,3,0,30,21,1,6,0,7,0,45,19,7,16,22,0,4,11,0,34,0,6,7,0,44,17,22,0,5,11,14,21,0,5,0,23,0,45,17,0,5,0,158,17,14,21,0,1,21,1,7,16,22,0,6,11,0,22,16,22,0,7,11,14,21,0,3,0,24,0,34,0,8,7,0,45,19,15,179,3,2,0,42,31,0,5,8,16,22,0,8,11,14,21,0,6,21,0,7,0,12,21,0,8,17,0,7,0,45,17,0,43,0,24,0,35,15,180,8,8,16,0,15,21,0,3,17,25,21,0,1,0,30,21,1,5,7,16,0,34,0,8,7,0,45,17,0,5,0,162,17,14,21,0,1,0,30,0,13,0,40,0,49,8,7,16,0,34,0,8,7,0,45,17,0,5,0,163,17,14,0,3,22,0,5,11,14,21,0,1,0,25,0,36,0,44,8,0,43,0,24,15,181,0,22,0,41,0,33,0,7,7,8,19,8,21,0,2,17,22,0,1,12,14,21,0,1,0,4,21,0,1,21,0,5,16,22,0,6,11,17,22,0,7,11,14,0,44,22,0,8,11,14,31,0,6,0,30,0,17,0,38,0,30,15,182,7,8,21,0,4,9,7,16,25,21,0,1,0,12,16,0,12,0,45,17,0,5,0,164,17,14,21,1,88,0,24,7,22,0,3,11,14,21,0,1,21,0,3,0,1,0,44,0,38,0,17,8,19,0,30,15,183,7,0,34,0,30,0,30,0,26,7,7,7,3,0,0,20,16,0,20,16,19,0,1,0,30,0,44,7,3,0,0,41,21,1,87,8,0,1,0,24,19,9,19,3,2,0,42,21,1,58,0,20,0,45,19,8,16,25,21,0,2,0,12,16,22,0,3,11,14,21,0,1,0,12,16,0,13,21,0,3,17,0,5,0,165,17,14,21,0,1,21,1,59,16,22,0,4,11,0,27,21,0,3,17,21,1,60,0,7,7,21,0,2,21,1,59,16,17,22,0,5,11,14,21,0,5,0,44,0,16,0,40,0,44,8,0,12,0,45,19,3,2,0,42,21,0,3,0,12,0,45,17,8,16,22,0,6,11,14,31,0,5,0,30,0,12,0,40,0,44,8,7,0,34,0,8,7,0,45,19,0,45,3,2,0,42,21,0,6,8,16,0,5,0,166,17,14,21,0,1,0,41,0,24,0,35,0,25,0,38,21,0,1,21,1,87,16,15,184,15,185,3,2,0,42,21,0,1,0,12,16,0,12,21,0,3,17,8,16,8,8,8,22,0,7,11,14,21,0,2,21,1,87,16,21,1,88,21,0,7,7,31,0,6,17,0,1,3,0,31,0,7,16,17,25,21,0,1,21,1,4,16,0,5,0,167,17,14,21,0,1,21,1,90,21,1,123,3,2,0,42,21,0,2,21,1,58,16,0,13,0,46,17,8,21,0,2,17,25,21,0,2,21,1,92,21,0,1,17,0,11,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,0,21,21,0,2,17,17,25,21,0,2,21,0,1,3,2,0,16,21,0,1,0,20,21,0,2,17,17,25,21,0,1,0,36,21,0,1,0,1,0,44,21,0,2,16,19,8,25,21,0,1,21,1,104,16,21,1,105,0,45,17,0,5,0,170,17,14,21,0,1,21,1,87,16,22,0,1,12,14,21,0,1,21,1,103,16,0,50,0,41,21,1,106,8,21,1,98,21,1,106,0,40,0,45,8,19,16,0,5,0,171,17,14,21,0,1,0,30,21,1,5,7,16,0,34,21,1,98,7,0,45,17,0,5,0,172,17,14,21,0,1,25,21,0,1,0,38,21,1,111,8,0,24,0,38,21,1,101,8,21,1,60,0,16,7,21,1,103,0,41,0,33,21,1,95,21,1,107,0,45,19,21,1,108,0,25,19,7,8,19,0,45,0,44,3,2,0,36,0,46,3,1,8,19,25,21,0,1,21,1,112,21,0,5,7,21,0,2,17,22,0,6,11,21,1,102,0,44,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,186,22,0,9,11,14,21,0,1,21,0,9,31,0,6,7,21,0,2,17,25,21,0,1,21,1,112,21,0,5,7,21,1,60,21,1,108,0,41,21,1,96,8,21,1,108,21,1,97,0,44,19,3,2,0,42,0,24,21,1,106,0,44,19,8,7,21,1,104,0,39,21,1,8,8,19,21,0,2,17,22,0,6,11,14,15,187,22,0,7,11,14,0,24,21,1,101,9,21,0,7,0,24,0,30,21,1,101,7,9,3,3,0,42,21,1,104,0,41,21,1,105,8,21,1,107,0,45,19,21,1,100,0,44,0,41,21,1,102,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,0,16,0,40,21,1,103,0,33,21,1,108,7,0,45,19,8,16,17,21,1,60,21,0,4,7,21,0,2,31,0,7,31,0,6,0,16,0,44,17,17,17,21,1,102,16,25,21,0,1,21,1,104,16,21,1,106,0,45,17,0,5,0,173,17,14,21,0,4,22,0,5,11,14,15,188,22,0,6,11,14,21,0,1,31,0,6,15,189,3,2,0,42,0,45,0,36,21,1,103,21,1,101,0,44,19,8,8,21,0,2,17,25,21,0,1,21,1,59,0,39,21,1,8,8,21,0,2,17,22,0,3,11,14,21,0,3,0,30,21,1,103,7,16,22,0,4,11,0,34,21,1,97,7,0,45,17,22,0,5,11,14,21,0,4,21,1,108,21,0,5,17,21,1,105,0,45,17,0,34,21,1,98,7,0,45,17,0,5,0,175,17,14,21,0,3,21,1,60,0,29,0,40,0,45,21,1,108,21,0,5,17,0,17,16,0,41,21,1,107,8,8,7,21,0,5,21,1,109,21,0,4,17,17,22,0,6,11,14,21,0,6,0,34,21,1,54,7,16,0,5,0,176,17,14,31,0,3,21,1,60,0,45,0,24,0,16,0,44,19,3,2,0,42,0,25,8,7,31,0,4,21,1,104,31,0,5,17,17,0,34,21,1,107,7,0,44,17,22,0,7,11,14,21,0,1,21,1,87,0,39,0,26,8,21,0,2,17,21,1,87,31,0,6,0,16,0,44,17,0,26,31,0,7,3,1,17,17,25,21,0,4,22,0,6,11,14,0,44,15,190,0,36,0,32,15,191,7,8,21,0,2,17,22,0,7,11,14,21,0,1,21,0,5,21,0,2,17,22,0,8,11,14,15,192,22,0,9,11,14,21,0,1,31,0,9,15,193,3,2,0,42,21,0,8,21,1,6,16,8,16,25,21,0,2,21,1,104,16,21,1,104,0,45,17,0,5,0,178,17,14,21,0,2,0,30,21,1,104,7,16,22,0,3,11,0,34,21,1,107,7,0,44,17,22,0,4,11,14,21,0,1,21,1,104,16,21,1,106,21,0,4,17,0,5,0,179,17,14,21,0,1,21,1,59,16,0,27,21,0,4,17,21,1,108,21,0,2,0,30,21,1,59,7,16,21,1,67,16,17,22,0,5,11,14,21,0,5,21,0,3,21,1,104,0,45,17,21,1,120,21,0,3,17,0,41,21,1,106,8,21,1,98,21,1,106,0,40,0,44,8,19,16,0,34,21,1,98,7,0,45,17,0,5,0,166,17,14,0,44,3,1,0,26,31,0,5,17,0,29,21,0,3,0,31,21,1,107,7,16,21,1,121,0,44,17,17,21,1,96,31,0,3,17,22,0,6,11,14,21,0,2,0,30,21,1,87,7,16,22,0,2,12,0,30,21,1,103,7,16,0,33,21,1,108,7,21,0,6,17,22,0,7,11,14,0,32,21,0,1,7,21,1,86,21,0,1,21,1,10,31,0,4,17,0,41,0,26,8,19,22,0,8,11,14,21,0,7,0,34,21,1,100,7,0,45,17,3,1,21,0,8,16,0,41,0,29,8,22,0,9,11,14,21,0,2,0,16,0,40,0,44,8,0,39,21,1,88,21,0,9,7,8,21,1,60,21,1,88,0,24,7,7,21,1,100,31,0,7,21,1,119,16,21,1,121,0,45,17,0,31,21,1,100,7,16,21,1,119,16,19,0,34,0,30,0,30,21,1,107,7,7,7,9,0,30,31,0,9,7,9,3,2,0,42,0,24,0,38,21,1,103,8,21,1,103,0,45,19,8,31,0,6,17,0,1,21,0,2,0,30,0,44,7,16,31,0,8,16,17,25,21,0,2,21,1,104,16,22,0,3,11,14,21,0,1,21,1,104,16,21,1,106,21,0,3,17,0,5,0,180,17,14,21,0,1,21,0,3,21,1,129,21,1,118,0,40,21,0,2,21,1,59,16,21,1,96,21,0,1,21,1,59,16,21,1,124,0,40,21,1,108,8,21,0,3,17,21,1,107,0,45,17,17,8,8,16,31,0,3,21,1,129,21,1,58,8,21,0,2,17,0,1,0,44,17,25,21,0,2,21,1,104,16,0,33,21,1,108,7,0,45,17,22,0,3,11,14,21,0,3,21,1,106,0,44,17,0,5,0,181,17,14,21,0,1,21,1,104,16,21,1,106,31,0,3,17,0,5,0,182,17,14,21,0,1,21,1,127,0,40,21,0,2,8,21,1,87,0,38,21,1,131,8,21,1,87,21,1,59,19,0,41,21,1,60,21,1,8,7,8,9,0,39,21,1,127,8,21,0,2,17,25,21,0,2,21,1,104,16,21,1,105,0,45,17,0,5,0,183,17,14,21,0,1,21,1,59,16,21,1,103,0,39,21,1,106,8,21,0,2,17,0,5,0,184,17,14,21,0,2,21,1,87,16,0,30,21,1,6,7,16,0,34,21,1,98,7,0,45,17,0,5,0,185,17,25,21,0,1,21,1,59,16,21,1,126,21,0,2,17,0,30,0,34,21,1,96,7,7,16,21,1,118,16,0,30,0,32,21,0,1,7,21,1,45,0,29,0,40,21,0,2,8,19,7,16,25,21,0,1,21,1,133,21,0,2,17,14,21,0,2,21,1,87,16,22,0,2,12,14,21,0,2,21,1,128,16,21,1,109,16,0,34,21,1,107,7,0,44,17,21,1,108,21,0,1,21,1,104,16,17,22,0,3,11,14,21,0,3,21,1,101,21,0,2,17,0,34,21,1,98,7,0,45,17,0,5,0,186,17,14,21,0,1,21,1,134,31,0,3,21,1,118,16,0,24,21,1,120,0,33,21,1,128,0,38,21,1,109,8,7,19,21,0,2,17,0,26,21,0,2,17,17,25,21,0,1,21,1,133,21,0,2,17,14,21,0,2,21,1,87,16,22,0,2,12,14,21,0,1,21,1,104,16,22,0,3,11,14,21,0,2,21,0,3,0,41,21,1,101,8,21,1,98,21,1,128,19,16,0,34,21,1,98,7,0,45,17,21,1,146,16,14,21,0,1,21,1,134,31,0,3,21,1,118,16,0,24,21,1,120,0,33,21,1,128,0,38,21,1,109,8,7,19,21,0,2,17,0,26,21,0,2,17,21,1,82,16,17,25,21,0,1,21,1,144,16,25,21,0,5,14,21,0,1,21,0,4,21,0,2,17,25,21,0,1,21,1,144,16,0,24,15,194,3,2,0,42,0,44,0,24,21,1,1,0,38,0,45,0,16,0,40,0,32,0,46,7,21,1,108,21,1,103,19,8,21,1,59,0,32,21,1,138,7,19,3,2,0,42,0,16,0,40,0,44,8,21,1,104,0,52,19,8,8,9,3,2,0,42,21,1,59,0,40,0,32,21,1,148,7,8,21,1,98,21,1,59,19,8,8,21,0,1,17,25,21,0,1,21,1,1,16,25,21,0,1,21,1,144,16,25,21,0,2,0,41,21,0,1,8,0,36,21,0,2,21,0,1,9,8,25,21,0,1,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,140,21,1,109,9,22,0,7,11,14,31,0,6,15,195,15,196,0,32,21,1,148,7,3,2,0,42,0,24,0,38,21,0,7,8,8,3,2,0,42,0,25,0,38,31,0,7,8,8,31,0,4,17,25,21,0,1,21,1,1,16,25,21,0,1,21,1,153,16,25,21,0,1,21,1,156,16,25,21,0,2,21,0,1,16,25,21,0,1,21,1,159,16,25,21,0,2,0,34,21,0,1,7,16,25,0,24,21,1,58,0,38,21,1,147,8,21,0,1,19,0,25,0,24,19,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,58,21,0,1,17,21,1,147,16,14,31,0,6,25,21,0,1,21,1,58,16,21,1,104,0,46,17,21,1,146,16,14,21,0,1,0,30,21,1,104,7,16,21,1,104,0,45,17,0,34,21,1,98,7,0,45,17,21,1,147,16,14,21,0,1,21,1,145,16,22,0,3,11,14,21,0,3,0,30,21,1,6,7,16,0,34,21,1,98,7,0,45,17,21,1,147,16,14,21,0,1,21,1,60,21,1,121,7,0,49,17,21,1,145,16,21,1,102,21,0,3,17,0,34,21,1,98,7,0,45,17,21,1,147,16,14,21,0,3,0,3,16,22,0,4,11,14,0,45,21,1,106,21,0,4,17,0,34,21,1,98,7,0,45,17,21,1,147,16,14,31,0,4,21,1,109,16,21,1,120,16,22,0,5,11,14,21,0,5,21,1,60,0,49,7,16,21,1,145,21,0,1,21,1,60,21,1,103,7,16,21,1,120,16,17,0,29,31,0,5,21,1,145,31,0,3,17,21,1,29,16,17,25,21,0,2,21,1,104,16,21,1,104,0,45,17,21,1,146,16,14,21,0,2,0,30,21,1,6,7,16,0,34,21,1,98,7,0,45,17,21,1,146,16,14,21,0,2,21,1,126,16,22,0,3,11,14,21,0,1,21,1,60,21,1,103,7,0,39,21,1,58,8,21,0,3,17,21,1,147,16,14,21,0,1,21,1,145,0,39,0,29,0,40,21,1,29,8,8,31,0,3,17,25,21,0,1,21,1,4,16,21,1,147,16,14,21,0,1,21,1,104,16,21,1,104,0,44,17,21,1,147,16,14,21,0,1,21,1,87,16,0,16,0,44,17,25,21,0,2,21,1,104,0,39,21,1,108,8,21,0,1,17,22,0,3,11,14,21,0,3,0,45,0,41,21,1,106,8,21,1,98,21,1,106,0,40,0,44,8,19,16,21,1,147,16,14,21,0,2,0,45,21,1,103,3,2,0,42,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,103,16,21,1,106,21,0,4,17,21,1,147,16,14,21,0,1,21,1,152,21,1,124,0,40,21,0,4,8,3,2,0,42,31,0,3,8,16,21,1,58,21,0,2,17,21,1,147,16,14,21,0,1,21,1,125,31,0,4,17,25,21,0,1,21,1,103,16,21,1,104,0,46,17,21,1,147,16,14,21,0,1,21,1,152,16,21,1,58,21,0,2,17,21,1,147,16,14,21,0,1,21,1,152,0,45,17,25,21,0,1,21,1,103,16,21,1,104,0,45,17,21,1,147,16,14,21,0,1,21,1,152,16,25,21,0,1,21,1,104,16,21,1,104,0,45,17,21,1,146,16,14,21,0,1,0,30,21,1,6,7,16,0,34,21,1,98,7,0,45,17,21,1,146,16,14,21,0,1,21,1,125,0,40,0,45,8,21,1,106,21,1,125,0,40,0,49,8,19,0,34,21,1,98,7,0,45,19,16,21,1,147,16,14,21,0,1,0,3,16,25,21,0,1,21,1,9,0,39,21,0,4,21,1,50,0,30,21,0,4,7,8,8,21,0,2,17,25,0,24,0,38,21,1,58,8,21,1,101,0,44,19,21,1,147,9,0,25,21,1,60,21,1,137,21,0,1,7,7,19,25,0,24,0,38,21,1,58,8,21,1,101,0,44,19,21,1,147,9,0,25,0,44,0,38,21,1,146,8,0,36,21,1,155,21,1,137,21,0,1,7,7,8,19,25,0,24,0,38,21,1,104,8,21,1,101,0,44,19,21,1,147,9,0,25,21,1,79,21,1,137,21,0,1,7,0,24,0,40,21,1,4,0,38,21,1,147,8,8,9,7,19,25,21,1,60,21,1,137,21,0,1,7,7,25,0,24,0,38,21,1,104,8,21,1,101,0,44,19,21,1,147,9,0,25,0,24,21,0,1,21,1,121,19,0,36,21,1,103,21,1,101,0,45,19,0,43,21,1,125,0,40,0,45,8,21,0,1,21,1,125,0,40,0,49,8,19,21,1,145,21,1,152,19,8,8,19,25,21,0,1,0,32,15,197,7,3,2,0,42,21,1,104,0,40,0,32,21,1,138,7,8,8,25,21,1,137,21,0,2,7,22,0,3,11,14,21,0,3,0,40,21,0,1,8,0,36,31,0,3,8,21,1,137,21,0,1,7,9,25,21,0,1,21,1,158,21,1,137,21,0,2,7,8,25,21,0,1,21,1,157,21,0,2,8,21,1,149,21,0,1,21,1,108,16,21,1,157,21,0,2,8,8,25,21,0,1,21,1,108,16,21,1,157,21,0,2,8,25,21,1,137,21,0,1,7,0,36,21,1,137,21,0,2,7,8,25,21,1,137,21,0,1,7,0,40,21,0,2,8,25,21,0,1,0,36,21,1,148,8,25,21,1,137,21,0,2,7,21,1,137,21,0,1,7,9,0,36,21,0,1,0,32,0,44,0,38,21,1,146,8,7,15,198,3,2,0,42,0,24,0,38,21,1,140,8,8,21,0,2,17,8,25,21,0,1,15,199,21,0,5,21,1,163,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,1,101,21,1,127,21,0,1,19,21,1,163,9,22,1,2,12,14,21,0,1,21,1,3,3,2,25,21,0,1,21,2,2,16,25,21,0,1,21,2,2,16,25,21,0,2,0,14,16,22,0,5,11,14,21,0,2,0,12,16,0,17,16,0,34,0,8,0,40,21,0,1,0,14,16,0,41,0,16,8,0,12,21,0,5,0,41,0,16,8,19,8,7,0,45,17,0,5,0,97,17,14,21,0,5,0,34,0,8,7,0,45,17,0,17,16,0,30,21,0,1,0,15,16,0,41,0,16,8,21,0,4,21,0,2,0,15,16,0,41,0,16,8,19,7,16,0,15,31,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,0,34,0,8,0,40,21,0,7,0,41,0,16,8,0,12,31,0,5,0,41,0,16,8,19,8,7,0,45,17,0,5,0,98,17,14,21,0,6,0,7,21,0,1,0,12,16,17,0,17,16,0,34,0,8,0,40,0,6,0,40,31,0,6,8,0,33,0,16,7,21,0,7,19,8,7,0,45,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,0,39,0,30,0,32,31,0,10,7,0,16,0,6,0,40,0,8,0,40,31,0,8,8,8,19,21,0,4,21,0,9,0,41,0,16,8,19,7,8,31,0,9,0,22,16,17,0,15,16,0,15,31,0,7,17,25,21,0,1,21,2,20,21,0,4,7,21,0,2,17,25,21,0,1,0,30,15,200,21,0,2,7,7,16,25,21,0,2,0,30,15,201,21,0,1,7,7,16,25,21,2,8,0,16,0,23,19,21,2,8,21,2,21,19,22,0,3,11,14,21,0,1,0,22,0,39,21,0,3,8,21,0,2,17,22,0,4,22,0,5,4,2,11,14,21,0,1,15,202,0,39,15,203,8,21,0,2,17,22,0,6,11,14,21,0,4,31,0,6,3,2,25,21,0,2,22,0,3,11,14,21,0,1,22,0,4,11,14,15,204,21,1,6,3,2,0,42,0,12,0,40,21,1,7,8,8,22,0,5,11,14,0,44,21,0,5,16,25,21,0,1,0,12,0,40,0,44,8,0,43,21,0,2,8,9,25,0,33,21,0,1,7,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,99,17,14,21,0,1,0,22,16,22,0,3,11,14,21,0,1,21,0,3,0,38,0,17,8,15,205,3,2,0,42,21,0,3,0,13,0,46,17,8,16,25,15,206,22,0,3,11,14,0,49,21,0,3,0,45,0,6,21,0,1,17,17,0,6,0,45,17,25,21,0,2,21,2,27,21,0,1,0,41,21,1,13,8,7,16,25,21,0,2,0,12,16,0,33,0,7,7,0,45,17,22,0,3,11,14,21,0,3,0,13,0,44,17,0,5,0,103,17,14,21,0,1,0,12,16,0,13,21,0,3,17,0,5,0,104,17,14,21,0,2,0,22,16,22,0,4,11,14,21,0,2,21,2,10,0,45,17,22,0,5,11,0,34,0,8,7,0,45,17,22,0,6,11,14,21,0,1,0,12,16,0,33,0,7,7,31,0,3,17,22,0,7,11,14,21,0,1,0,14,16,0,27,21,0,7,17,22,0,8,11,0,34,0,8,7,0,45,17,22,0,9,11,14,21,0,1,21,2,9,16,15,207,15,208,3,2,0,42,0,44,21,2,10,0,40,31,0,7,8,21,2,54,31,0,5,19,3,2,0,42,21,0,4,0,20,0,44,17,8,8,21,0,2,17,0,15,31,0,8,17,25,21,0,1,0,30,21,2,6,7,16,0,34,0,8,7,0,45,17,0,5,0,106,17,14,0,45,0,7,21,1,3,17,22,0,3,11,14,0,24,0,7,21,0,3,19,0,33,0,16,7,21,1,3,0,17,16,0,30,0,7,0,40,21,0,3,8,7,16,0,31,0,24,0,33,0,16,7,21,0,1,19,0,12,0,44,19,0,8,0,7,19,0,6,0,24,19,7,16,19,22,0,4,11,14,21,0,1,0,31,0,6,7,16,0,41,0,16,8,22,0,5,11,14,0,44,21,0,4,16,22,0,6,11,21,0,5,16,22,0,7,11,14,31,0,3,21,0,5,16,0,17,16,0,30,15,209,7,16,25,21,0,1,0,7,21,1,3,17,0,17,16,0,30,0,6,0,40,21,0,1,8,7,16,25,21,0,1,0,5,21,1,4,19,0,25,0,24,19,25,21,1,4,0,8,21,0,1,17,0,6,21,0,2,21,2,40,21,0,1,17,17,22,1,4,12,25,21,0,1,0,1,21,0,2,19,25,21,0,2,0,35,21,0,1,21,2,110,21,0,2,17,8,25,21,0,4,22,0,6,11,14,21,0,1,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,5,21,2,4,0,21,31,0,8,19,0,43,15,210,0,38,21,1,7,8,8,16,31,0,7,21,0,2,17,22,0,10,11,14,31,0,10,31,0,9,0,43,15,211,8,16,25,0,44,22,0,3,11,14,21,0,1,15,212,16,22,0,4,11,14,21,0,2,21,2,8,0,39,21,2,8,8,0,32,21,2,51,7,0,15,0,39,21,2,8,8,3,2,0,42,21,2,56,8,15,213,3,3,0,42,31,0,4,0,11,0,46,17,8,21,0,1,17,25,21,0,2,22,0,3,22,0,4,4,2,11,14,15,214,0,40,21,0,2,8,22,0,5,11,14,15,215,22,0,6,11,14,15,216,0,40,0,44,8,22,0,7,11,14,21,0,1,0,32,21,0,4,7,0,16,0,44,19,31,0,7,3,2,0,42,21,1,12,0,38,21,2,4,8,8,16,25,21,1,6,21,0,1,16,25,21,0,1,0,12,0,40,21,1,4,8,0,7,0,45,19,0,43,15,217,8,16,14,21,1,5,0,16,0,45,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,30,15,218,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,30,0,16,0,40,21,0,1,8,7,16,22,0,5,11,14,21,0,4,0,17,16,0,30,0,32,21,0,5,7,0,16,0,8,0,40,21,0,3,8,19,7,16,22,0,6,11,14,31,0,3,0,17,16,0,30,0,25,7,21,0,6,17,0,30,0,24,7,21,1,10,0,17,16,17,0,15,16,21,2,54,31,0,5,17,0,5,0,125,17,14,21,0,6,21,2,32,16,22,0,7,11,14,21,0,7,0,22,16,0,17,16,0,30,21,0,6,21,1,8,0,6,7,0,44,17,0,29,21,0,7,17,0,41,0,16,8,0,41,0,7,8,7,16,22,0,8,11,14,31,0,8,0,30,0,24,7,21,1,12,17,21,2,60,0,6,7,21,0,7,0,30,31,0,6,0,41,0,16,8,0,41,0,8,8,7,21,1,12,17,17,22,1,12,12,14,31,0,7,0,30,0,6,0,40,21,0,4,0,41,0,8,8,8,7,21,1,11,17,22,1,11,12,14,31,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,1,5,0,16,0,44,17,0,28,21,1,7,17,22,0,3,11,14,21,1,5,0,30,0,28,0,40,21,1,7,8,21,2,54,21,0,3,19,7,16,0,34,0,8,7,0,45,17,0,5,0,126,17,14,21,0,3,0,34,0,8,7,16,22,0,4,11,0,17,16,0,15,31,0,3,17,22,0,5,11,14,21,0,5,0,30,0,25,7,21,0,1,17,21,1,13,31,0,5,0,30,0,6,0,40,0,8,0,40,31,0,4,8,8,7,21,0,2,17,17,25,0,32,21,2,51,7,21,0,1,3,2,0,42,21,0,4,0,7,0,45,19,0,39,0,8,0,36,0,24,8,8,8,25,21,0,1,15,219,21,0,1,21,0,4,21,0,5,3,3,7,3,2,0,42,0,24,21,0,2,9,8,25,21,1,0,0,36,21,0,1,8,25,21,0,1,0,36,21,1,0,8,25,21,1,1,21,0,2,7,22,0,3,11,14,21,0,1,21,0,3,15,220,15,221,3,3,0,42,0,32,0,50,7,0,7,0,0,19,8,16,25,21,0,1,21,1,8,16,22,0,3,11,14,21,0,1,31,0,3,21,0,2,17,25,21,0,1,21,2,1,16,25,21,0,1,0,28,0,45,17,0,30,21,2,69,0,40,0,32,21,0,2,7,8,7,16,25,21,0,2,0,12,16,0,23,0,45,17,0,5,21,1,6,17,14,21,0,2,21,2,7,16,22,0,2,12,14,21,0,2,0,30,21,2,5,7,16,0,34,0,8,7,0,45,17,0,5,21,1,7,17,14,21,0,2,0,22,16,22,0,3,11,14,21,0,1,21,2,59,16,0,22,0,41,0,21,8,0,43,15,222,8,21,0,3,17,22,0,4,11,14,15,223,22,0,5,11,14,0,44,0,20,16,22,0,6,11,14,0,45,22,0,7,11,14,15,224,22,0,8,11,14,0,44,22,0,9,11,14,21,0,3,0,17,16,0,30,21,0,2,0,41,0,16,8,15,225,21,1,4,15,226,7,31,0,8,0,25,19,3,2,0,42,21,1,3,8,21,0,4,0,41,0,16,8,19,7,16,22,0,10,11,14,21,0,1,21,2,9,16,0,24,0,35,0,15,0,40,21,0,4,8,15,227,3,2,0,42,21,0,6,0,12,16,0,20,0,44,17,8,8,16,25,21,0,1,21,2,6,16,0,5,0,145,17,14,21,0,1,0,17,16,25,21,0,1,0,12,16,0,12,0,45,17,0,5,0,146,17,14,21,0,1,0,30,21,1,3,7,16,0,34,0,30,0,26,0,40,21,2,8,8,7,7,3,0,0,20,16,17,0,1,21,0,1,0,30,0,44,7,16,17,25,21,0,1,0,12,16,0,13,21,1,3,17,0,5,0,148,17,14,21,0,2,0,30,21,2,6,7,16,0,34,0,8,7,16,0,5,0,149,17,14,21,0,1,21,2,59,16,22,0,3,11,14,21,1,3,0,17,16,0,30,21,0,2,0,41,0,16,8,0,7,21,0,3,0,41,0,16,8,19,0,6,0,45,19,7,16,22,0,4,11,14,21,0,4,0,30,0,13,0,40,0,44,8,7,16,0,34,0,8,7,16,0,5,0,150,17,14,21,0,3,0,28,21,1,3,17,22,0,5,11,0,34,0,8,7,0,45,17,22,0,6,11,14,0,45,0,7,21,1,3,17,15,228,16,0,26,21,0,6,3,1,17,0,31,0,8,7,16,21,2,36,16,22,0,7,11,14,21,0,2,0,24,21,2,60,15,229,7,31,0,7,19,0,34,0,30,0,6,7,7,9,0,39,0,30,0,6,7,8,31,0,4,17,0,45,0,41,0,12,8,0,7,0,45,19,0,43,0,33,0,17,0,15,31,0,5,19,0,41,0,30,0,6,7,8,7,8,31,0,6,17,0,30,21,0,1,0,15,16,0,41,0,16,8,7,16,25,21,0,1,0,12,16,0,13,0,45,17,0,5,0,151,17,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,0,12,16,0,23,0,45,17,0,5,0,152,17,14,21,0,1,21,2,59,16,0,22,0,39,0,13,8,21,0,2,17,0,5,0,153,17,14,21,0,2,0,22,16,22,0,3,11,14,21,0,2,0,15,16,0,41,0,16,8,22,0,4,11,14,21,0,1,21,0,3,0,20,0,44,17,0,43,15,230,8,0,44,17,25,21,0,2,0,12,21,1,4,17,25,21,1,3,0,6,22,1,4,13,14,21,0,1,0,6,0,45,17,25,21,0,1,21,2,60,0,24,0,45,3,2,0,42,0,25,8,7,21,1,4,17,0,34,0,8,7,0,45,17,22,0,3,11,14,21,0,3,0,20,0,44,17,0,5,0,159,17,14,21,1,4,0,22,16,0,17,16,0,30,0,8,0,40,21,1,4,0,41,0,16,8,8,7,16,0,34,0,6,7,0,44,17,22,0,4,11,14,21,1,3,0,16,31,0,4,17,21,2,85,16,22,0,5,11,14,0,53,0,20,21,0,5,17,0,5,0,160,17,14,0,12,0,40,0,11,8,0,5,0,161,19,0,25,0,24,19,22,0,6,11,14,21,0,3,0,9,21,1,7,17,31,0,6,0,11,0,18,3,3,0,42,21,0,5,0,11,0,46,17,8,16,22,0,7,11,14,21,1,3,21,2,60,0,24,21,0,7,3,2,0,42,0,25,8,7,21,1,4,17,22,1,3,12,14,31,0,7,0,8,31,0,3,17,31,0,5,0,12,0,50,17,0,43,0,20,0,40,21,1,7,8,0,43,15,231,8,8,16,25,21,1,8,0,17,16,0,30,0,25,7,0,40,0,1,0,38,0,20,8,8,15,232,3,2,0,42,21,1,7,0,20,0,44,17,8,21,0,1,17,25,0,24,21,1,5,21,0,1,0,16,21,0,2,17,19,22,1,5,12,14,21,0,1,0,27,21,0,2,17,25,21,0,1,14,21,1,7,0,16,21,1,8,17,0,24,0,45,0,6,21,1,8,17,22,1,8,12,17,25,21,0,1,21,2,87,16,21,1,3,16,0,30,21,0,1,21,2,59,16,21,2,77,16,21,2,87,16,0,41,0,29,8,7,16,25,21,1,4,0,28,21,1,3,17,22,0,3,11,0,34,0,8,7,0,45,17,22,0,4,11,14,21,0,4,0,17,16,21,2,87,31,0,3,17,0,41,0,30,0,6,0,40,0,8,0,40,31,0,4,8,8,0,33,0,16,7,21,0,1,19,7,8,25,0,30,21,0,1,0,41,0,16,8,7,25,21,1,9,21,1,7,21,2,107,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,60,21,0,5,7,0,25,0,38,0,30,21,0,1,0,41,21,0,5,8,7,8,0,24,0,38,0,30,0,24,31,0,5,21,0,2,19,7,8,21,1,8,3,4,0,42,21,2,58,0,39,21,2,8,8,21,2,105,21,0,4,21,2,97,0,44,17,19,21,2,99,0,44,21,2,105,21,0,4,17,21,2,98,21,1,7,17,19,21,2,86,0,46,19,0,34,21,2,107,0,40,0,46,0,41,21,2,100,8,8,7,9,8,21,0,2,17,25,21,0,1,21,2,59,16,0,29,21,0,2,0,17,16,17,22,0,3,11,14,21,0,1,21,2,10,21,0,2,17,22,0,4,11,0,34,21,2,100,7,0,45,17,22,0,5,11,14,21,0,5,0,17,16,21,2,87,31,0,4,17,22,0,6,11,14,21,0,1,15,233,0,35,0,32,21,0,3,0,34,21,2,100,7,0,45,17,0,17,16,0,30,0,24,21,2,100,31,0,5,19,21,2,107,21,0,6,19,0,33,0,29,7,21,0,1,21,2,87,16,19,7,16,21,2,87,31,0,3,17,7,8,16,25,21,0,1,21,2,59,16,0,28,0,45,17,22,0,3,11,14,15,234,22,0,4,11,14,21,1,5,0,32,21,0,1,7,21,2,87,31,0,4,19,21,2,17,0,41,21,2,86,8,3,2,0,42,0,24,0,38,21,2,14,0,38,21,2,109,8,8,8,31,0,3,17,25,21,0,1,21,2,79,21,2,101,7,16,0,34,21,1,5,7,21,0,2,17,25,15,235,0,32,21,0,2,7,7,25,0,25,21,0,1,9,25,0,44,22,0,3,11,22,0,4,11,14,21,1,8,21,2,20,15,236,7,16,14,21,0,1,3,1,22,0,5,11,14,15,237,0,40,21,1,7,8,22,0,6,11,14,21,0,3,21,0,6,21,1,6,17,22,0,7,11,14,21,0,4,21,2,108,16,21,0,5,31,0,6,0,40,21,2,144,8,3,2,0,42,21,2,101,0,40,0,44,8,8,21,1,6,17,22,0,8,11,14,21,1,8,21,2,20,0,32,31,0,7,31,0,8,3,2,7,0,16,0,44,0,41,21,2,101,8,19,0,16,21,2,95,19,7,16,25,21,1,8,0,17,16,0,34,0,24,0,38,21,1,6,21,1,7,16,8,7,21,0,1,17,25,21,0,1,21,2,149,21,0,2,8,21,2,138,21,0,1,8,25,0,24,21,2,137,21,1,5,7,21,0,2,19,15,238,21,2,137,21,0,1,7,8,25,0,24,15,239,21,1,5,7,21,0,1,19,21,2,137,21,0,2,7,9,25,21,0,2,21,2,138,21,0,1,8,25,0,24,15,240,21,0,2,7,21,0,1,19,25,21,0,1,25,21,0,1,21,2,2,21,0,4,17,25,21,0,4,21,2,2,21,0,1,17,25,21,1,5,0,17,16,0,30,0,7,0,40,21,0,1,0,22,16,0,6,0,49,17,8,0,33,0,16,7,21,0,1,19,7,16,25,21,0,1,21,3,19,0,12,7,21,0,2,17,0,31,0,8,7,16,0,34,0,6,7,0,44,17,22,0,3,11,14,21,0,2,0,29,0,40,0,17,8,21,0,3,17,0,34,0,8,7,0,45,17,22,0,4,11,14,31,0,3,0,21,0,40,21,1,5,8,0,43,0,32,21,0,2,21,0,1,3,2,7,0,30,0,16,7,0,20,19,0,38,15,241,8,8,16,14,21,0,4,25,21,1,4,0,6,0,40,21,0,1,8,0,39,21,2,5,8,21,1,3,17,0,12,0,40,0,44,8,0,43,21,0,1,0,6,0,45,17,0,38,21,1,5,8,8,16,25,21,0,1,21,3,10,0,45,17,0,34,0,8,7,0,45,17,22,0,3,11,0,12,0,45,17,22,0,4,11,14,21,0,1,0,15,16,22,0,1,12,14,0,45,22,0,5,11,14,0,44,22,0,6,11,14,21,0,1,0,30,0,0,0,38,15,242,8,7,16,14,21,0,4,0,8,0,46,17,0,6,21,0,5,17,22,0,7,11,14,15,243,22,0,8,11,14,0,44,22,0,9,11,22,0,10,11,14,15,244,22,0,11,11,14,21,0,1,0,44,0,44,15,245,3,2,0,42,0,30,0,12,0,40,0,11,8,7,0,34,0,8,7,0,45,19,8,3,2,0,42,21,1,3,0,12,21,0,6,17,0,8,21,0,7,0,12,0,50,17,17,8,16,22,0,12,11,14,21,0,1,31,0,8,31,0,11,3,2,0,42,31,0,12,8,16,25,21,0,1,0,45,0,41,0,21,8,0,43,15,246,8,21,0,2,17,25,21,0,1,14,21,1,9,0,17,16,0,30,21,1,4,0,8,21,2,2,17,7,16,25,21,1,6,21,3,24,21,0,1,0,15,16,0,41,0,16,8,0,41,21,3,55,0,7,0,45,19,0,40,21,0,2,0,15,16,0,41,0,16,8,8,8,7,16,22,0,3,11,14,21,0,1,15,247,15,248,3,2,0,42,0,15,0,38,0,22,8,0,20,0,51,19,0,39,0,8,8,8,21,0,2,17,25,21,1,6,21,1,7,0,12,21,0,1,17,0,43,15,249,8,16,25,21,0,1,3,1,3,0,0,26,3,2,0,42,0,25,21,3,4,9,8,21,1,6,17,22,1,6,12,25,21,0,1,21,2,8,21,1,6,8,25,21,0,1,15,250,0,15,0,38,0,30,21,0,0,7,8,0,34,0,18,7,0,44,19,0,6,0,45,19,3,2,0,42,21,3,4,8,16,25,15,251,22,0,3,11,14,21,3,8,21,0,3,15,252,3,2,0,42,0,24,0,38,0,34,21,3,56,7,8,8,3,2,0,42,0,24,0,16,0,44,19,21,3,4,9,8,22,0,4,11,14,21,0,2,21,0,1,3,2,21,0,4,0,44,17,22,0,5,11,14,21,1,3,0,17,16,0,30,15,253,7,16,22,0,6,11,14,31,0,6,0,30,0,16,0,40,0,45,8,7,21,3,8,0,30,0,16,0,40,0,44,8,7,19,0,32,21,3,51,7,3,2,0,42,31,0,3,0,12,21,0,5,17,8,16,25,21,0,1,21,3,9,16,22,0,1,12,14,21,0,1,0,14,16,22,0,3,11,14,21,0,1,0,15,16,22,0,4,11,0,22,16,22,0,5,11,14,21,1,3,0,3,21,0,5,17,22,0,6,11,14,21,1,3,0,4,21,0,6,17,22,0,7,11,14,31,0,7,0,41,0,16,8,0,33,0,16,7,21,1,4,19,22,0,8,11,14,0,44,22,0,9,11,14,15,254,21,0,8,9,22,0,10,11,14,31,0,8,0,41,21,3,55,8,0,5,0,121,19,22,0,11,11,14,31,0,5,0,17,16,0,30,31,0,6,0,41,0,16,8,0,41,31,0,4,0,41,0,16,8,21,0,10,0,24,15,255,31,0,10,19,3,3,0,42,0,11,0,40,0,46,8,8,8,7,16,0,15,31,0,3,17,25,21,0,1,0,22,16,0,17,16,0,30,21,0,1,0,41,0,16,8,0,41,0,25,0,12,21,0,1,21,0,5,16,19,0,43,21,0,4,8,8,7,16,25,21,0,1,0,15,0,38,0,32,21,2,12,7,0,16,21,0,2,19,21,1,6,21,0,0,0,40,21,0,2,0,6,0,45,17,8,8,8,0,15,0,14,19,21,1,5,3,2,0,42,21,2,12,0,22,16,0,23,21,0,2,17,8,16,25,21,0,1,22,2,4,12,0,33,0,16,7,21,2,6,17,22,2,5,12,14,0,49,22,2,3,12,25,21,1,5,22,0,3,11,14,21,0,1,21,1,6,22,1,5,13,14,31,0,3,25,21,0,4,21,0,1,21,0,2,17,25,21,0,1,22,0,3,11,14,15,256,25,21,0,1,22,0,3,11,14,15,257,25,21,0,1,0,26,21,0,1,0,22,16,0,7,21,0,2,17,0,17,0,38,0,30,0,45,7,8,16,17,25,21,0,1,0,30,0,6,7,21,0,2,0,30,21,0,4,0,41,0,8,8,7,16,17,25,21,0,1,0,45,0,41,0,12,8,0,7,0,45,19,0,43,21,1,5,21,0,2,7,0,40,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,45,22,1,7,12,14,21,0,1,0,22,16,25,21,0,2,0,8,22,1,7,13,14,21,0,2,25,21,0,1,14,0,45,22,1,9,12,25,21,1,4,0,28,21,1,3,17,22,0,3,11,0,26,22,1,10,13,14,31,0,3,0,34,0,8,7,21,1,7,17,0,12,0,40,0,45,8,0,7,0,45,19,0,43,15,258,8,16,14,21,0,1,0,15,16,0,41,0,16,8,22,0,4,11,14,21,1,9,0,24,0,43,15,259,8,21,0,1,17,14,21,1,6,0,15,21,1,10,17,0,30,21,0,4,7,16,25,21,0,1,0,17,16,0,30,0,7,0,40,21,0,1,8,0,33,0,16,7,21,1,3,19,7,16,25,21,0,1,0,17,16,0,30,0,8,0,40,21,0,2,8,7,16,25,21,0,1,0,45,0,7,21,1,3,17,0,20,21,0,2,17,0,43,21,3,79,21,0,0,0,40,21,0,2,0,6,0,45,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,2,7,0,7,21,0,1,17,0,17,16,0,30,21,2,6,0,1,16,7,16,0,26,22,2,6,13,14,21,2,7,25,0,49,22,0,3,11,14,0,45,0,7,21,2,7,17,22,0,4,11,14,21,0,1,0,30,15,260,7,16,25,21,1,6,0,30,21,0,1,21,3,101,16,7,16,25,21,0,2,21,3,103,16,21,3,101,0,44,17,0,5,0,174,17,14,21,0,2,21,3,103,16,0,17,16,21,3,101,0,44,17,21,3,100,21,0,2,17,25,0,25,21,0,1,21,0,4,19,25,21,0,1,21,3,5,16,0,5,0,177,17,14,21,0,1,21,3,96,21,1,4,17,22,1,4,12,14,21,0,1,21,3,97,21,1,3,17,22,1,3,12,25,21,0,1,0,17,16,0,26,21,1,5,17,0,31,21,0,2,7,16,25,21,0,1,21,0,5,16,21,0,4,21,0,2,17,25,21,0,1,21,3,154,16,25,21,0,1,21,3,154,16,25,21,0,1,0,34,21,2,3,7,16,22,0,3,22,0,4,4,2,11,14,31,0,3,22,2,4,12,14,31,0,4,0,8,22,1,4,13,25,21,0,1,0,13,0,45,17,0,8,22,1,5,13,14,21,0,1,0,6,22,1,6,13,25,21,3,3,0,16,21,1,7,17,15,261,21,0,1,7,16,21,1,4,0,7,0,45,17,0,43,15,262,8,21,1,3,17,22,0,3,11,14,0,24,21,2,3,3,2,0,42,0,13,0,40,21,2,3,8,8,22,0,4,11,14,0,44,0,12,21,2,3,17,0,6,21,2,3,17,0,2,0,46,17,0,18,16,22,0,5,11,0,17,16,0,30,0,24,0,6,0,45,19,0,7,31,0,5,19,0,10,0,46,19,7,16,0,34,15,263,7,21,2,3,0,17,16,17,25,21,0,1,0,30,21,1,10,0,41,0,7,8,0,7,0,40,21,1,9,8,3,2,0,16,21,3,2,17,7,16,0,4,0,40,0,3,8,16,25,21,2,3,0,8,0,46,17,0,13,21,0,1,0,34,0,11,7,16,22,1,10,12,0,7,21,0,1,0,34,0,18,7,16,22,1,9,12,17,17,25,0,46,0,9,21,0,2,17,0,11,16,22,0,3,11,0,6,21,0,1,17,22,0,4,11,21,3,2,16,22,0,5,11,14,21,0,1,31,0,4,3,2,0,16,21,0,5,17,21,2,3,21,0,3,0,8,0,46,17,0,7,21,0,2,17,0,8,31,0,5,17,0,6,31,0,3,17,17,25,21,0,1,14,21,2,4,21,2,9,3,2,0,30,0,17,0,30,0,8,0,40,21,2,6,8,7,9,7,16,22,0,3,22,0,4,4,2,11,14,31,0,4,0,30,15,264,7,16,25,21,0,2,21,4,30,16,21,4,36,16,22,0,3,11,14,21,0,1,21,4,29,21,0,2,0,29,21,0,3,17,17,0,30,0,45,0,41,0,7,8,0,18,0,44,19,0,33,0,16,7,31,0,3,19,7,16,22,0,4,11,14,0,7,0,40,0,45,8,0,8,0,40,21,2,4,0,41,0,7,8,8,0,7,0,25,19,3,2,0,16,21,3,2,17,22,0,5,11,14,21,2,9,0,17,16,0,30,0,8,0,40,21,2,6,8,0,39,21,1,3,8,31,0,5,0,25,19,0,40,31,0,4,0,41,0,16,8,8,7,16,25,0,45,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,14,0,45,0,6,22,2,3,13,14,0,44,25,21,0,0,0,44,3,2,25,21,0,2,22,0,3,11,14,21,0,1,0,30,0,15,7,16,22,0,4,11,0,16,0,44,17,0,22,16,22,0,5,11,14,0,49,22,0,6,11,14,15,265,0,41,21,1,4,8,22,0,7,11,14,15,266,25,21,0,1,21,1,5,16,22,0,3,22,0,4,4,2,11,14,31,0,3,22,1,5,12,14,31,0,4,25,0,45,0,7,21,0,1,0,6,22,1,9,13,17,25,0,45,0,7,21,0,1,17,0,17,16,0,30,0,6,0,40,21,0,1,0,7,21,1,9,17,8,21,1,11,21,0,2,19,7,16,14,21,0,2,25,0,44,0,32,21,1,3,21,0,1,7,7,16,21,2,3,16,25,0,44,0,32,21,0,2,21,1,3,21,0,1,8,7,16,21,2,3,16,25,21,0,1,0,17,16,21,2,5,21,0,1,7,22,2,6,13,25,0,32,21,0,2,0,1,16,7,21,1,4,3,2,0,42,0,13,0,40,0,44,8,8,22,1,4,12,25,21,0,1,14,21,3,6,0,16,21,1,4,0,12,21,1,3,17,0,8,21,3,7,17,0,7,0,45,17,0,6,22,1,3,13,17,25,21,0,4,0,41,0,16,8,0,39,21,0,1,8,25,0,32,0,44,7,0,13,21,2,3,21,5,24,21,0,1,7,16,19,25,21,0,2,22,0,3,11,0,7,16,22,0,4,11,14,0,44,22,0,5,11,22,0,6,11,22,0,7,11,14,0,50,22,0,8,11,14,21,0,1,0,45,0,12,21,2,3,17,0,7,0,45,17,0,43,0,30,0,8,0,40,21,2,3,8,7,8,16,0,41,0,16,8,0,39,21,1,3,8,22,0,9,11,14,21,0,9,0,7,0,45,19,0,44,0,45,0,46,3,4,22,0,10,11,14,0,6,15,267,3,2,0,16,21,0,3,0,13,0,51,17,17,22,0,11,11,14,15,268,22,0,12,11,14,15,269,15,270,31,0,12,3,3,0,42,15,271,8,22,0,13,11,14,21,0,1,0,30,21,0,1,0,41,15,272,8,7,16,25,21,1,3,0,30,21,0,1,0,41,21,2,3,8,7,16,21,4,3,16,25,21,1,4,0,30,0,16,0,40,21,0,1,8,7,16,25,0,45,0,6,22,1,6,13,14,21,1,6,21,1,7,0,40,0,32,21,0,0,7,8,0,32,21,1,3,7,3,2,0,42,0,13,0,40,21,1,5,8,8,16,22,0,3,11,14,0,44,31,0,3,16,25,21,0,1,21,1,8,0,7,0,45,17,0,43,21,1,9,0,43,15,273,8,8,0,45,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,4,16,22,1,6,12,0,6,21,1,3,17,21,2,4,16,22,1,5,12,14,21,1,7,0,13,21,4,3,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,45,17,22,1,4,12,0,12,21,1,6,17,0,8,0,46,17,0,6,22,1,8,13,14,21,0,2,25,21,0,1,0,6,0,45,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,0,42,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,21,0,1,14,0,46,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25]
,[provide[0],provide[1],provide[2],provide[3],provide[4],provide[5],provide[6],provide[7],provide[8],provide[9],provide[10],runtime_0[0],provide[12],provide[13],provide[14],provide[15],provide[16],provide[17],runtime_0[1],runtime_0[2],runtime_0[3],runtime_0[4],runtime_0[5],runtime_0[6],runtime_0[7],runtime_0[8],runtime_0[9],runtime_0[10],runtime_0[11],runtime_0[12],provide[18],provide[19],runtime_0[13],runtime_0[14],runtime_0[15],provide[20],provide[21],provide[22],runtime_0[16],runtime_0[17],runtime_0[18],runtime_0[19],runtime_0[20],runtime_0[21],0,1,2,Infinity,-Infinity,-1,3,8,5,4,'∾','+','-','Γ—','Γ·','⋆','Β¬','⌊','⌈','∨','∧','β‰ ','=','>','β‰₯','Λ™','√','<','⊒','⊣','≍','↑','↓','↕','⌽','⍉','/','βŠ”','˜','Β¨','⌜','˘','`','∘','β—‹','⌾','⍟','⊘','⊸','⟜',str("+-Γ—Γ·β‹†βˆšβŒŠβŒˆ|¬∧∨<>β‰ =≀β‰₯β‰‘β‰’βŠ£βŠ’β₯ŠβˆΎβ‰β†‘β†“β†•Β«Β»βŒ½β‰/β‹β’βŠβŠ‘βŠβŠ’βˆŠβ·βŠ”!Λ™ΛœΛ˜Β¨βŒœβΌΒ΄Λ`βˆ˜β—‹βŠΈβŸœβŒΎβŠ˜β—ΆβŽ‰βš‡βŸβŽŠ%"),str("Β΄: Identity not found"),str("Β΄: 𝕩 must be a list"),str("Mapping: Equal-rank argument shapes don\'t agree"),str("Mapping: Argument shape prefixes don\'t agree"),str("⍋𝕩: 𝕩 must have rank at least 1"),str("⍋ or ⍒: Rank of 𝕨 must be at least 1"),str("⍋ or ⍒: Rank of 𝕩 must be at least cell rank of 𝕨"),str("⍋ or ⍒: 𝕨 must be sorted"),str("pβŠπ•© or π•¨βˆŠp: p must have rank at least 1"),str("p⊐n or n∊p: Rank of n must be at least cell rank of p"),str("/: 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("π•¨βŠ‘π•©: Indices in 𝕨 must consist of integers"),str("π•¨βŠ‘π•©: Index out of range"),str("π•¨βŠπ•©: Indices in 𝕨 must be integers"),str("π•¨βŠπ•©: Indices out of range"),str("π•¨βŠ‘π•©: 𝕩 must be a list when 𝕨 is a number"),str("π•¨βŠ‘π•©: Indices in compound 𝕨 must be lists"),str("π•¨βŠ‘π•©: Index length in 𝕨 must match rank of 𝕩"),str("βŠπ•©: 𝕩 must have rank at least 1"),str("βŠπ•©: 𝕩 cannot have length 0"),str("π•¨βŠπ•©: 𝕨 must be an array"),str("⌾: Incompatible result elements in structural Under"),str(">𝕩: Elements of 𝕩 must have matching shapes"),str("βˆΎπ•©: Elements of 𝕩 must all have the same rank"),str("βˆΎπ•©: 𝕩 element rank must be at least argument rank"),str("βˆΎπ•©: 𝕩 element shapes must be compatible"),str("βˆΎπ•©: 𝕩 element trailing shapes must match"),str("βˆΎπ•©: empty 𝕩 fill rank must be at least argument rank"),str("βˆΎπ•©: 𝕩 must be an array"),str("βŠ’βŠ£Λœβˆ˜β—‹βŠΈβŸœβŠ˜β—Ά"),str("=β‰ β‰’"),str("<"),str("≍"),str("↕/Β»Β«βŠ”"),str("β₯Šβ†‘β†“βŒ½β‰βŠβŠ‘"),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 consist of natural numbers"),str("↕𝕩: 𝕩 must be a number or list"),str("𝕨↕𝕩: 𝕨 must have rank at most 1"),str("𝕨↕𝕩: Length of 𝕨 must be at most rank of 𝕩"),str("𝕨↕𝕩: 𝕨 must consist of natural numbers"),str("𝕨↕𝕩: Window length 𝕨 must be at most axis length plus one"),str("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("𝕨/𝕩: Lengths of components of 𝕨 must match 𝕩"),str("βˆŠπ•© or βŠπ•©: 𝕩 must have rank at least 1"),str("βˆ˜βŒŠβŒ½β†‘"),str("𝕨β₯Šπ•©: 𝕨 must have rank at most 1"),str("𝕨β₯Šπ•©: 𝕨 must consist of natural numbers"),str("𝕨β₯Šπ•©: Can\'t compute axis length when rest of shape is empty"),str("𝕨β₯Šπ•©: 𝕨 must consist of natural numbers or ∘ ⌊ ⌽ ↑"),str("𝕨β₯Šπ•©: Shape must be exact when reshaping with ∘"),str("βŠ”: Grouping argument must consist of integers"),str("βŠ”: Grouping argument values cannot be less than Β―1"),str("βŠ”π•©: 𝕩 must be a list"),str("π•¨βŠ”π•©: Rank of simple 𝕨 must be at most rank of 𝕩"),str("π•¨βŠ”π•©: Lengths of 𝕨 must equal to 𝕩, or one more only in a rank-1 component"),str("π•¨βŠ”π•©: 𝕩 must be an array"),str("β‰₯: No monadic form"),str("≀: No monadic form"),str("βŽ‰ or βš‡: 𝔽 result must have rank at most 1"),str("βŽ‰ or βš‡: 𝔽 result must have 1 to 3 elements"),str("βŽ‰ or βš‡: 𝔽 result must consist of integers"),str("˝: 𝕩 must have rank at least 1"),str("˝: Identity does not exist"),str("π•¨βˆΎπ•©: Rank of 𝕨 and 𝕩 must differ by at most 1"),str("π•¨βˆΎπ•©: Cell shapes of 𝕨 and 𝕩 must match"),str("⍟: Repetition numbers in 𝕨𝔾𝕩 must be integers"),str("π•¨βŠ”π•©: Compound 𝕨 must be a list"),str("π•¨βŠ”π•©: Total rank of 𝕨 must be at most rank of 𝕩"),str("⍷𝕩: Rank of 𝕨 cannot exceed rank of 𝕩"),str("βŠ’: Rank of 𝕨 must be at least 1"),str("βŠ’: Rank of 𝕩 must be at least cell rank of 𝕨"),str("𝕨⍉𝕩: 𝕨 must have rank at most 1"),str("𝕨⍉𝕩: Length of 𝕨 must not exceed rank of 𝕩"),str("𝕨⍉𝕩: 𝕨 must consist of natural numbers"),str("𝕨⍉𝕩: Skipped result axis"),str("Cannot currently invert blocks"),str("Cannot invert modifier"),str("⁼: Inverse failed"),str("⁼: Inverse does not exist"),str("⁼: Inverse not found")]