1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
// Virtual machine
let assert = x => { if (!x) throw Error(); }
let has = x => x!==undefined;
let call = (f,x,w) => {
let ff = f;
if (typeof f === "function") {
assert(!f.m1&&!f.m2);
} else {
ff = ()=>f;
}
return !has(x) ? x : ff(x,w);
}
let get1= i => (v=>(assert(v!==null),v))(i[0][i[1]]);
let get = i => i.a ? arr(i.map(get),i.sh) : get1(i);
let set = (d,id,v) => {
let eq = (a,b) => a.length===b.length && a.every((e,i)=>e===b[i]);
if (id.a) {
assert(v.a&&eq(id.sh,v.sh)); id.map((n,j)=>set(d,n,v[j]));
} else {
let [a,i]=id; assert((a[i]===null)==d); a[i]=v;
}
return v;
}
let run = (B,O,S) => { // Bytecode, Objects, Sections/blocks
// Turn each block into an environment=>pushable value map
let D = S.map(([t,i,st,l]) => e => {
let v=Array(l).fill(null);
let c = sv => vm(st,[sv.concat(v)].concat(e));
return [
n => n([]),
n => {let r=(f )=>n([r,f ]);r.m1=1;return r;},
n => {let r=(f,g)=>n([r,f,g]);r.m2=1;return r;}
][t]([
v => {let r=(x,w)=>c([r,x,w].concat(v));return r;},
c
][i]);
});
// Execute
let vm = (p,e) => { // Program counter, Environment
let s=[]; // Stack
let num = () => {
let b=128,n=B[p++];
if (n<b) return n;
let i=1, t=0;
do { t+=i*(n-b); i*=b; n=B[p++]; } while (n>=b);
return t+i*n;
}
while (1) switch(B[p++]) {
case 0: s.push(O[num()]);break;
case 3: case 4: {let a=s.splice(s.length-num());s.push(list(a));break;}
case 5: case 16:{let[x,f] =s.splice(-2);s.push(call(f,x ));break;}
case 6: case 17:{let[x,f,w]=s.splice(-3);s.push(call(f,x,w));break;}
case 7: {let[m,f] =s.splice(-2);assert(m.m1);s.push(m(f ));break;}
case 8: {let[g,m,f]=s.splice(-3);assert(m.m2);s.push(m(f,g));break;}
case 9: {let[h,g] =s.splice(-2);s.push((x,w)=>call(g,call(h,x,w)));break;}
case 10:case 19:{let[h,g,f]=s.splice(-3);s.push((x,w)=>call(g,call(h,x,w),has(f)?call(f,x,w):f));break;}
case 11: {let[v, i]=s.splice(-2);s.push(set(1,i,v));break;}
case 12: {let[v, i]=s.splice(-2);s.push(set(0,i,v));break;}
case 13: {let[x,f,i]=s.splice(-3);s.push(set(0,i,call(f,x,get(i))));break;}
case 14:{s.pop();break;}
case 15:{s.push(D[num()](e));break;}
case 21:{let v=e[num()][num()];assert(v!==null);s.push(v);break;}
case 22:{s.push([e[num()],num()]);break;}
case 25:if(s.length!==1){console.log(p-28,B.length,B.slice(p-28,p));console.log(s);}assert(s.length===1);return s[0];
}
}
try {
return D[0]([]);
} catch (err) {
return "error"
}
}
// Runtime
let arr = (r,sh) => {r.sh=sh;r.a=1;return r;}
let list = l => arr(l,[l.length]);
let str = s => list(Array.from(s));
let m1 = m => {m.m1=1;return m;}
let m2 = m => {m.m2=1;return m;}
let lesseq = (x,w) => {
let s=typeof w, t=typeof x;
return +(s!==t ? s<=t : w<=x);
}
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 = m1(f => (x,w) => {
let s=x.sh;assert(!has(w)&&x.a&&s.length>0);
let l=x.length,r=Array(l);
if (l>0) {
let c=1;for(let i=1;i<s.length;i++)c*=s[i];
let i=0;
for(;i<c;i++) r[i]=x[i];
for(;i<l;i++) r[i]=call(f,x[i],r[i-c]);
}
return arr(r,s);
});
let group_len = (x,w) => { // ≠¨⊔ for a valid list argument
let l=x.reduce((a,b)=>Math.max(a,b),-1);
let r=Array(l+1).fill(0);
x.map(e=>{if(e>=0)r[e]+=1;});
return list(r);
}
let group_ord = (x,w) => { // ∾⊔x assuming w=group_len(x)
let l=0,s=w.map(n=>{let l0=l;l+=n;return l0;});
let r=Array(l);
x.map((e,i)=>{if(e>=0)r[s[e]++]=i;});
return list(r);
}
let runtime = run(
new Uint8Array([15,1,25,21,0,1,22,0,3,22,0,4,22,0,5,22,0,6,22,0,7,22,0,8,22,0,9,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,22,0,21,22,0,22,4,20,11,14,15,2,22,0,23,11,14,15,3,22,0,24,11,14,15,4,22,0,25,11,14,15,5,21,0,24,15,6,8,22,0,26,11,14,15,7,22,0,27,11,14,15,8,22,0,28,11,14,15,9,22,0,29,11,14,15,10,22,0,30,11,14,15,11,22,0,31,11,14,15,12,22,0,32,11,14,21,0,15,21,0,30,21,0,14,8,0,1,3,2,21,0,23,21,0,3,8,22,0,33,11,14,21,0,15,21,0,30,21,0,14,8,21,0,11,21,0,16,21,0,30,0,1,8,19,0,1,3,2,21,0,23,21,0,3,8,22,0,34,11,14,21,0,27,21,0,16,7,21,0,10,0,0,19,21,0,24,15,13,8,22,0,35,11,14,21,0,16,21,0,10,0,0,19,22,0,36,11,14,15,14,21,0,19,21,0,36,19,21,0,24,21,0,14,8,22,0,37,11,14,15,15,21,0,19,21,0,35,19,21,0,24,21,0,10,21,0,28,21,0,37,21,0,28,21,0,10,8,8,8,22,0,38,11,14,3,0,21,0,17,3,2,21,0,23,21,0,3,8,22,0,39,11,14,0,0,21,0,39,21,0,19,0,1,19,3,2,21,0,23,21,0,15,21,0,35,0,1,19,8,22,0,40,11,14,15,16,22,0,41,11,14,21,0,41,22,0,42,11,14,21,0,3,21,0,10,0,0,19,21,0,32,21,0,35,8,22,0,43,11,14,21,0,39,21,0,31,15,17,8,22,0,44,11,14,15,18,22,0,45,11,14,15,19,22,0,46,11,14,15,20,22,0,47,11,14,21,0,16,21,0,10,21,0,27,21,0,16,7,19,22,0,48,11,14,0,0,21,0,18,21,0,19,0,1,19,21,0,31,21,0,16,21,0,11,0,2,19,21,0,10,0,0,19,15,21,3,2,21,0,23,21,0,25,21,0,28,21,0,3,8,8,8,3,2,21,0,23,21,0,25,21,0,28,21,0,39,8,21,0,42,21,0,11,7,0,0,19,21,0,35,0,1,19,8,22,0,49,11,14,21,0,48,21,0,49,21,0,27,21,0,49,7,21,0,10,9,3,2,21,0,23,21,0,26,21,0,28,21,0,3,8,8,15,22,3,3,21,0,23,21,0,3,21,0,29,21,0,9,8,8,22,0,50,11,14,15,23,22,0,51,11,14,15,24,22,0,52,11,14,21,0,15,21,0,35,0,1,19,21,0,32,15,25,8,22,0,53,11,14,15,26,22,0,54,11,14,15,27,22,0,55,11,14,15,28,22,0,56,11,14,21,0,3,21,0,29,21,0,15,8,0,1,3,2,21,0,25,21,0,28,21,0,3,8,21,0,15,3,2,21,0,15,21,0,29,21,0,15,8,0,1,3,2,21,0,39,21,0,29,21,0,56,21,0,15,7,8,21,0,42,21,0,11,7,0,0,19,0,1,3,2,15,29,3,5,21,0,42,15,30,7,16,22,0,57,11,14,0,1,15,31,3,2,21,0,23,21,0,3,8,22,0,58,11,14,21,0,57,21,0,24,21,0,58,8,22,0,59,11,14,21,0,3,21,0,32,21,0,18,21,0,28,21,0,40,8,21,0,35,0,1,19,21,0,32,15,32,8,8,22,0,60,11,14,21,0,47,21,0,9,7,22,0,61,11,14,21,0,47,21,0,10,7,22,0,62,11,14,21,0,47,21,0,11,21,0,24,21,0,36,21,0,62,21,0,35,19,21,0,30,0,1,8,8,7,22,0,63,11,14,21,0,47,21,0,12,7,22,0,64,11,14,21,0,47,21,0,13,7,22,0,65,11,14,21,0,27,21,0,64,21,0,31,21,0,65,8,7,21,0,24,0,2,21,0,64,16,21,0,31,21,0,65,8,8,22,0,66,11,14,21,0,47,15,33,21,0,24,21,0,63,21,0,31,21,0,63,8,8,7,22,0,67,11,14,21,0,47,15,34,21,0,24,21,0,37,8,7,22,0,68,11,14,21,0,47,15,35,21,0,24,21,0,62,21,0,28,21,0,68,21,0,28,21,0,62,8,8,8,7,22,0,69,11,14,21,0,62,21,0,61,0,0,19,22,0,70,11,14,21,0,63,22,0,71,11,14,21,0,63,21,0,62,21,0,61,19,22,0,72,11,14,21,0,47,21,0,27,21,0,16,7,21,0,62,0,0,19,7,21,0,24,15,36,8,22,0,73,11,14,21,0,47,21,0,16,21,0,62,0,0,19,7,21,0,24,21,0,60,8,22,0,74,11,14,21,0,47,21,0,15,21,0,62,0,0,19,7,21,0,24,21,0,40,8,22,0,75,11,14,21,0,47,21,0,15,7,21,0,24,21,0,15,8,22,0,76,11,14,21,0,47,21,0,27,21,0,16,7,7,21,0,24,0,1,21,0,28,21,0,8,8,8,22,0,77,11,14,21,0,47,21,0,16,7,21,0,24,0,1,21,0,28,21,0,8,8,8,22,0,78,11,14,21,0,61,0,1,3,2,21,0,62,0,1,3,2,21,0,63,0,0,3,2,21,0,64,0,0,3,2,21,0,65,0,0,3,2,21,0,66,0,0,3,2,21,0,71,0,0,3,2,21,0,72,0,1,3,2,21,0,67,0,1,3,2,21,0,68,0,6,3,2,21,0,69,0,7,3,2,21,0,73,0,1,3,2,21,0,78,0,0,3,2,21,0,76,0,0,3,2,21,0,77,0,0,3,2,21,0,74,0,1,3,2,21,0,75,0,1,3,2,3,17,21,0,42,15,37,7,0,1,21,0,28,21,0,8,8,3,1,21,0,19,0,1,17,17,22,0,79,11,14,15,38,21,0,18,3,2,21,0,23,21,0,3,8,22,0,80,11,14,21,0,43,21,0,31,15,39,8,22,0,81,11,14,21,0,18,21,0,24,21,0,80,8,22,0,82,11,14,15,40,22,0,83,11,14,21,0,57,21,0,70,9,21,0,24,21,0,39,8,22,0,84,11,14,15,41,21,0,24,15,42,8,22,0,85,11,14,21,0,85,21,0,28,21,0,74,8,22,0,86,11,14,15,43,22,0,87,11,14,15,44,22,0,88,11,14,21,0,88,22,0,89,11,14,15,45,22,0,90,11,14,21,0,90,22,0,91,11,14,15,46,22,0,92,11,14,15,47,22,0,93,11,14,21,0,93,22,0,94,11,14,15,48,22,0,95,11,14,0,0,21,0,95,21,0,54,8,21,0,30,21,0,43,8,22,0,96,11,14,21,0,96,21,0,24,21,0,96,21,0,30,0,1,8,8,22,0,97,11,14,21,0,45,15,49,3,2,21,0,23,21,0,76,21,0,75,0,0,19,21,0,29,21,0,72,8,8,22,0,98,11,14,15,50,22,0,99,11,14,15,51,22,0,100,11,14,21,0,99,21,0,24,21,0,100,8,22,0,101,11,14,15,52,22,0,102,11,14,15,53,22,0,103,11,14,21,0,102,21,0,24,21,0,103,8,22,0,104,11,14,15,54,22,0,105,11,14,15,55,22,0,106,11,14,0,1,21,0,95,15,56,8,22,0,107,11,14,21,0,97,21,0,30,21,0,52,8,22,0,108,11,14,21,0,75,21,0,76,0,1,19,21,0,62,0,0,19,21,0,95,15,57,15,58,3,2,21,0,23,15,59,8,8,22,0,109,11,14,21,0,105,21,0,24,21,0,83,8,22,0,110,11,14,21,0,107,21,0,24,21,0,106,8,22,0,111,11,14,21,0,109,21,0,24,21,0,52,8,22,0,112,11,14,21,0,82,21,0,28,21,0,75,8,21,0,73,0,1,19,21,0,32,15,60,15,61,3,2,21,0,23,21,0,21,21,0,76,7,21,0,75,0,0,19,21,0,42,21,0,72,7,9,0,0,3,2,21,0,23,21,0,76,21,0,75,0,0,19,8,8,8,22,0,113,11,14,15,62,22,0,114,11,14,15,63,22,0,115,11,14,15,64,22,0,116,11,14,21,0,98,21,0,24,21,0,113,8,22,0,117,11,14,21,0,116,21,0,24,21,0,115,8,22,0,118,11,14,15,65,22,0,119,11,14,21,0,119,15,66,3,2,21,0,23,21,0,26,21,0,28,21,0,82,21,0,28,21,0,21,21,0,3,7,8,8,21,0,42,21,0,72,7,9,8,22,0,120,11,14,21,0,120,21,0,30,21,0,82,21,0,25,3,2,21,0,23,21,0,3,8,8,22,0,121,11,14,15,67,22,0,122,11,14,15,68,22,0,123,11,14,15,69,22,0,124,11,14,15,70,22,0,125,11,14,21,0,125,21,0,50,7,21,0,24,0,1,21,0,51,21,0,50,8,8,22,0,126,11,14,21,0,125,21,0,27,21,0,50,7,7,21,0,24,0,0,21,0,51,21,0,27,21,0,50,7,8,8,22,0,127,11,14,15,71,22,0,128,1,11,14,15,72,22,0,129,1,11,14,15,73,22,0,130,1,11,14,21,0,128,1,0,0,7,21,0,24,0,1,21,0,28,21,0,8,8,8,22,0,131,1,11,14,21,0,27,21,0,128,1,0,1,7,7,21,0,24,21,0,129,1,8,22,0,132,1,11,14,21,0,130,1,21,0,24,21,0,112,21,0,30,21,0,132,1,8,8,22,0,133,1,11,14,15,74,22,0,134,1,11,14,21,0,134,1,21,0,24,21,0,53,8,22,0,135,1,11,14,21,0,126,21,0,28,21,0,126,8,21,0,97,21,0,62,21,0,25,19,21,0,27,21,0,131,1,7,19,22,0,136,1,11,14,15,75,22,0,137,1,11,14,21,0,137,1,21,0,24,21,0,136,1,8,22,0,138,1,11,14,21,0,121,21,0,24,21,0,82,21,0,19,0,1,19,8,22,0,139,1,11,14,15,76,22,0,140,1,11,14,21,0,61,21,0,27,21,0,62,7,21,0,24,21,0,61,8,21,0,62,21,0,62,21,0,63,21,0,27,21,0,64,7,21,0,24,21,0,25,8,21,0,64,21,0,64,21,0,65,21,0,47,21,0,5,7,21,0,66,21,0,27,21,0,65,7,21,0,24,0,2,21,0,31,21,0,65,8,8,21,0,71,21,0,27,21,0,64,7,21,0,24,21,0,25,8,21,0,72,21,0,25,21,0,62,0,0,19,21,0,64,21,0,27,21,0,62,7,19,21,0,24,21,0,25,8,21,0,73,0,1,21,0,28,21,0,8,8,21,0,24,15,77,8,21,0,112,0,1,21,0,28,21,0,8,8,21,0,24,15,78,8,3,20,21,0,82,21,0,30,21,0,75,21,0,27,21,0,64,7,0,2,19,21,0,27,21,0,117,7,0,2,19,8,16,21,0,135,1,16,15,79,16,22,0,141,1,11,14,15,80,22,0,142,1,11,14,15,81,22,0,143,1,11,14,21,0,143,1,22,0,144,1,11,14,21,0,81,21,0,24,21,0,80,8,22,0,145,1,11,14,15,82,22,0,146,1,11,14,21,0,71,21,0,24,21,0,97,21,0,30,21,0,126,8,8,22,0,147,1,11,14,21,0,72,21,0,24,21,0,97,21,0,30,21,0,127,8,8,22,0,148,1,11,14,21,0,55,22,0,149,1,11,14,21,0,61,21,0,62,21,0,63,21,0,64,21,0,65,21,0,66,21,0,68,21,0,69,21,0,67,21,0,70,21,0,147,1,21,0,148,1,21,0,73,21,0,74,21,0,75,21,0,76,21,0,78,21,0,77,21,0,59,21,0,84,21,0,26,21,0,25,21,0,145,1,21,0,117,21,0,86,21,0,101,21,0,104,21,0,110,21,0,111,21,0,135,1,21,0,112,21,0,126,21,0,127,21,0,97,21,0,139,1,21,0,131,1,21,0,138,1,21,0,132,1,21,0,133,1,21,0,118,21,0,8,21,0,27,21,0,92,21,0,56,21,0,146,1,21,0,142,1,21,0,42,21,0,94,21,0,22,21,0,28,21,0,29,21,0,30,21,0,31,21,0,149,1,21,0,24,21,0,140,1,21,0,91,21,0,89,21,0,144,1,3,59,25,21,0,1,15,83,21,0,5,21,1,19,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,5,3,2,21,1,23,0,1,21,1,10,21,0,2,15,84,0,0,7,16,17,8,21,0,2,17,25,21,0,1,25,21,0,2,25,21,0,1,25,21,0,1,21,1,26,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,26,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,26,21,0,2,17,17,25,21,0,1,15,85,21,1,25,21,0,4,3,2,21,1,19,21,0,1,21,0,5,21,0,2,17,17,7,21,0,2,17,25,21,0,1,3,1,21,1,18,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,21,1,15,16,21,1,15,0,0,17,21,1,8,16,14,21,0,1,22,0,5,11,21,1,40,16,22,0,6,11,14,21,0,4,22,0,7,11,14,21,0,1,21,1,26,21,1,24,15,86,15,87,3,2,21,1,23,21,0,6,21,1,35,0,1,17,8,8,21,0,2,17,22,0,8,11,14,21,0,6,21,1,20,16,21,1,21,21,1,10,21,1,30,0,0,21,1,10,21,0,6,17,8,7,16,21,1,21,15,88,7,16,14,21,0,8,25,21,0,2,21,1,10,21,0,1,21,1,40,16,17,21,1,20,16,21,1,21,21,1,27,21,0,1,7,21,1,19,21,1,9,21,1,30,21,0,2,8,19,7,16,25,21,0,2,21,1,40,16,22,0,3,11,14,21,0,1,21,1,40,16,21,1,9,21,0,3,17,21,1,20,16,21,1,21,21,0,2,21,1,31,21,1,19,8,21,1,27,21,0,1,7,21,1,19,21,0,3,21,1,31,21,1,10,8,19,3,2,21,1,23,21,1,16,21,1,30,21,0,3,8,8,7,16,25,15,89,22,0,2,11,14,15,90,22,0,3,11,14,21,0,3,21,0,1,7,21,1,27,21,0,3,21,1,27,21,0,1,7,7,7,3,2,21,1,23,21,1,15,21,1,29,21,1,36,8,8,21,0,2,21,0,1,7,3,2,21,1,23,21,1,15,21,1,29,21,1,15,8,8,25,15,91,21,0,1,7,22,0,2,11,14,21,0,1,15,92,15,93,3,2,21,1,23,21,1,3,21,1,29,21,1,36,8,8,21,1,24,21,1,21,21,0,2,7,8,21,1,46,21,0,2,7,3,3,21,1,23,21,1,3,21,1,29,21,1,9,8,8,25,21,0,1,21,1,49,21,0,2,17,25,21,0,1,21,1,39,21,1,29,21,1,122,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,42,21,1,123,21,0,1,21,1,18,16,21,1,31,21,1,19,8,21,1,31,21,1,50,21,1,30,21,0,2,21,1,18,16,21,1,31,21,1,19,8,8,8,7,7,16,22,0,4,11,14,0,1,21,1,27,21,0,4,7,16,25,21,0,1,21,1,15,16,21,1,16,0,0,17,21,1,8,16,14,21,0,1,21,1,40,16,22,0,6,11,14,21,0,1,21,1,44,0,0,17,21,1,42,21,1,11,7,0,0,17,22,0,7,11,14,21,0,1,21,1,18,16,22,0,8,11,14,0,1,22,0,9,11,22,0,10,11,14,21,0,8,0,1,21,1,21,21,1,33,7,21,1,42,21,1,11,7,0,0,19,3,2,21,1,23,21,0,6,21,1,35,0,3,17,21,1,11,0,0,21,1,15,21,0,7,17,17,8,16,21,1,25,21,1,32,21,0,1,21,1,31,15,94,8,8,16,21,1,10,0,0,17,22,0,11,11,14,21,0,1,21,1,21,21,0,10,21,1,31,21,1,10,8,21,1,10,21,1,30,21,0,9,8,3,2,21,1,19,21,0,5,17,7,21,1,7,21,1,30,21,1,6,8,9,15,95,21,0,4,7,3,2,21,1,23,21,0,11,8,16,25,21,0,1,21,1,15,16,21,1,15,0,0,17,21,1,8,16,14,21,0,1,21,1,40,16,22,0,3,11,14,21,0,1,21,0,3,21,1,35,0,1,17,21,1,32,15,96,8,16,25,21,0,1,21,1,40,16,22,0,3,11,14,21,0,1,21,1,44,0,0,17,22,0,4,11,21,1,42,21,1,11,7,0,0,17,22,0,5,11,14,21,0,3,21,1,20,16,21,1,21,21,1,27,21,0,1,21,1,18,16,7,21,1,19,21,1,11,21,1,30,21,0,5,8,21,1,31,21,1,9,8,19,7,21,0,5,21,1,20,16,21,1,18,21,0,4,17,17,25,21,0,2,21,1,3,16,21,1,8,16,14,21,0,2,21,1,21,21,1,33,7,16,21,1,18,16,21,1,42,21,1,11,7,0,0,17,21,1,8,16,14,21,0,1,21,1,40,16,22,0,3,11,14,21,0,2,21,1,21,21,1,36,21,1,30,21,0,3,8,21,1,11,21,1,16,21,1,30,21,0,3,21,1,10,16,8,19,7,16,21,1,18,16,21,1,42,21,1,11,7,0,0,17,21,1,8,16,14,21,0,1,15,97,15,98,3,2,21,1,23,21,0,1,21,1,15,16,21,1,15,0,0,17,8,21,0,2,21,1,21,21,1,25,21,1,36,0,1,19,21,1,11,21,0,3,19,21,1,9,21,1,25,19,7,16,17,25,21,0,1,21,1,39,16,22,0,6,11,21,1,42,21,1,11,7,0,0,17,22,0,7,11,21,1,20,16,22,0,8,11,14,21,0,1,21,0,5,21,1,29,21,0,4,8,21,0,2,17,21,1,18,16,22,0,9,11,14,21,0,8,21,1,18,21,0,6,17,21,0,5,16,21,1,18,16,22,0,10,11,0,1,21,1,51,21,1,48,8,16,22,0,11,11,14,21,1,27,21,0,10,7,21,1,19,21,0,11,21,1,31,21,1,19,8,19,21,0,7,3,2,21,1,23,21,1,16,21,1,30,21,0,11,21,1,40,16,8,8,22,0,12,11,14,0,1,22,0,13,11,21,0,12,16,22,0,14,11,14,21,0,8,21,1,21,21,0,1,21,1,18,16,21,1,31,21,1,19,8,15,99,3,2,21,1,23,15,100,8,7,16,21,1,18,21,0,6,17,25,21,1,43,21,1,29,21,1,46,21,0,1,7,21,1,24,21,1,21,21,0,1,7,8,8,25,21,0,1,21,1,56,21,1,57,7,21,0,2,17,21,1,18,16,21,1,42,21,1,11,7,0,0,17,25,21,0,2,21,1,19,0,0,17,21,0,1,3,2,21,1,23,21,0,2,21,1,19,0,1,17,8,25,21,0,1,21,1,18,16,21,1,21,21,1,58,7,16,21,1,42,21,1,10,21,1,11,21,1,16,19,21,1,10,21,1,26,19,7,0,1,17,21,1,9,0,0,17,25,21,0,1,21,1,18,16,21,1,19,0,1,17,21,1,39,16,22,0,3,11,14,21,0,1,21,1,18,16,21,1,21,21,1,39,21,1,59,21,0,3,19,7,16,21,1,42,21,1,11,7,0,0,17,21,1,8,16,14,21,0,3,21,1,42,21,1,11,7,0,0,17,21,1,20,16,21,1,18,21,0,3,17,21,1,21,21,1,27,21,1,80,21,1,31,21,1,19,8,7,7,21,0,1,17,25,21,0,2,21,1,64,21,0,1,17,21,1,37,16,21,1,63,21,0,2,17,21,1,62,21,0,1,17,25,21,0,2,21,0,1,3,2,21,1,19,21,0,1,21,1,36,21,0,2,17,17,25,21,0,2,21,0,1,3,2,21,1,19,21,0,1,21,1,35,21,0,2,17,17,25,21,0,1,3,1,21,1,18,3,0,17,25,21,0,1,21,0,2,21,1,19,0,0,17,3,2,21,1,23,15,101,21,0,2,21,1,19,0,1,17,7,8,25,21,0,1,3,1,25,21,0,2,21,1,76,16,21,1,77,0,0,17,21,1,8,16,14,21,0,2,21,1,80,16,22,0,2,12,14,21,0,2,21,1,21,21,1,34,7,16,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,2,21,1,42,21,1,63,7,16,22,0,3,11,14,21,0,1,21,1,39,16,21,1,42,21,1,63,7,16,22,0,4,11,14,21,0,1,21,0,4,21,1,75,21,0,3,17,21,1,32,15,102,8,16,21,1,18,21,0,2,17,25,15,103,22,0,3,11,14,15,104,22,0,4,11,14,21,0,1,21,0,3,21,0,4,3,2,21,1,23,21,1,3,8,16,25,21,0,2,21,0,1,3,2,25,21,0,1,3,1,25,21,0,1,21,1,28,21,1,82,8,21,1,25,21,1,28,21,1,73,8,21,1,56,21,1,19,7,21,1,75,21,1,31,21,1,27,21,1,67,21,1,61,0,0,19,21,1,62,21,1,26,19,7,8,19,0,0,0,1,3,2,21,1,24,0,2,3,1,8,19,25,21,0,1,21,1,87,21,0,5,7,21,0,2,17,22,0,6,11,21,1,74,0,1,17,22,0,7,11,14,21,0,4,22,0,8,11,14,15,105,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,87,21,0,5,7,21,1,56,21,1,62,21,1,31,21,1,68,8,21,1,62,21,1,69,0,1,19,3,2,21,1,23,21,1,25,21,1,78,0,1,19,8,7,21,1,76,21,1,29,21,1,85,8,19,21,0,2,17,22,0,6,11,14,15,106,22,0,7,11,14,21,1,25,21,1,73,9,21,0,7,21,1,25,21,1,21,21,1,73,7,9,3,3,21,1,23,21,1,76,21,1,31,21,1,77,8,21,1,61,0,1,21,1,31,21,1,74,8,19,8,22,0,7,12,14,21,0,1,21,0,7,21,0,6,21,1,19,21,1,30,21,1,75,21,1,27,21,1,62,7,0,0,19,8,16,17,21,1,56,21,0,4,7,21,0,2,21,0,7,21,0,6,21,1,19,0,1,17,17,17,21,1,74,16,25,0,8,21,1,91,21,0,1,8,25,21,0,1,21,1,76,16,21,1,78,0,0,17,21,1,8,16,14,21,0,1,21,1,92,21,1,73,7,16,21,1,42,21,0,4,7,21,0,2,17,25,21,0,1,22,0,3,11,14,15,107,15,108,3,2,21,1,23,21,1,26,21,1,28,21,1,59,21,1,73,21,0,2,19,8,8,25,21,0,1,21,1,84,21,1,29,21,1,85,8,21,0,2,17,22,0,3,11,14,21,0,3,21,1,21,21,1,75,7,16,22,0,4,11,21,1,42,21,1,69,7,0,0,17,22,0,5,11,14,21,0,4,21,1,62,21,0,5,17,21,1,77,0,0,17,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,3,21,1,56,21,1,97,21,1,30,0,0,21,1,62,21,0,5,17,21,1,20,16,21,1,31,21,1,61,8,8,7,21,0,5,21,1,70,21,0,4,17,17,22,0,6,11,14,21,0,6,21,1,42,21,1,59,7,16,21,1,8,16,14,21,0,3,21,1,56,0,0,21,1,25,21,1,19,0,1,19,3,2,21,1,23,21,1,26,8,7,21,0,4,21,1,76,21,0,5,17,17,21,1,42,21,1,61,7,16,22,0,7,11,14,21,0,1,21,1,82,21,1,29,21,1,45,8,21,0,2,17,21,1,82,21,0,6,21,1,19,0,1,17,21,1,45,21,0,7,3,1,17,17,25,15,109,22,0,3,11,14,21,0,1,21,1,82,21,1,82,21,1,84,21,1,28,21,1,45,21,1,30,21,1,25,21,1,75,21,1,29,21,1,62,8,21,0,2,19,21,1,69,0,1,19,21,1,20,21,1,28,21,1,21,0,0,7,8,9,8,8,19,16,0,1,21,1,95,21,0,3,8,21,0,2,17,25,21,0,1,21,1,76,16,21,1,78,0,0,17,21,1,8,16,14,21,0,1,21,1,75,16,21,1,61,0,0,17,21,1,20,16,21,1,21,21,0,1,21,1,31,21,1,99,8,7,16,25,21,0,1,21,1,84,16,21,1,75,21,1,31,21,1,62,8,21,1,69,0,1,19,21,1,20,21,1,28,21,1,21,0,0,7,8,9,21,1,27,21,1,45,7,21,1,25,19,21,1,101,21,1,26,19,21,0,2,21,1,75,16,17,22,0,3,11,14,21,0,1,21,1,101,21,0,2,21,1,68,21,0,3,17,21,1,69,21,0,3,21,1,62,16,17,21,1,61,0,1,21,1,74,21,0,2,17,21,1,65,0,8,17,21,1,63,21,0,3,17,17,17,25,21,0,1,21,1,76,16,21,1,78,0,0,17,21,1,8,16,14,21,0,1,21,1,75,16,21,1,61,0,0,17,21,1,20,16,21,1,21,21,0,1,21,1,31,21,1,102,8,7,16,25,21,0,1,21,1,3,16,21,1,8,16,14,21,0,2,21,1,76,16,21,1,77,0,0,17,21,1,8,16,14,21,0,1,21,1,84,16,21,1,75,21,1,29,21,1,78,8,21,0,2,17,21,1,8,16,14,21,0,2,21,1,82,16,21,1,21,21,1,34,7,16,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,1,21,1,84,16,21,1,101,21,0,2,21,1,75,16,17,22,0,3,11,14,21,0,3,21,1,61,0,0,17,21,1,78,21,0,2,17,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,1,21,0,2,21,1,75,16,21,1,73,0,1,17,21,1,32,15,110,8,21,0,2,17,25,21,0,1,21,1,76,16,21,1,78,0,0,17,21,1,8,16,14,21,0,1,21,1,97,21,0,1,21,1,75,16,21,1,70,21,1,30,21,1,20,8,16,21,1,62,16,17,25,21,0,2,21,1,33,16,21,1,8,16,14,21,0,1,21,1,75,16,22,0,3,11,14,21,0,1,21,1,97,21,0,3,21,1,20,16,21,1,61,21,0,2,17,21,1,67,21,0,3,17,17,25,21,0,1,21,1,108,21,1,30,21,1,21,21,0,2,7,8,16,25,21,0,1,21,1,75,21,1,29,21,1,76,8,21,0,2,17,21,1,8,16,14,21,0,1,21,1,108,21,0,2,17,25,21,0,2,21,1,76,16,21,1,73,0,1,17,25,0,8,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,21,1,21,21,1,75,7,16,21,1,112,16,21,1,21,15,111,7,16,25,21,1,25,21,1,42,21,1,21,21,1,45,21,1,30,21,1,82,8,7,7,3,0,21,1,73,16,19,22,0,3,11,14,21,0,1,21,1,3,16,21,1,8,16,14,21,0,1,21,1,21,21,1,84,7,16,22,0,4,11,14,21,0,4,21,1,82,16,21,1,19,0,1,17,21,1,75,16,22,0,5,11,14,21,0,4,21,1,21,21,1,75,7,16,21,1,76,21,0,5,17,21,1,82,16,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,1,21,1,76,16,21,1,77,21,0,5,17,21,1,8,16,14,21,0,1,22,0,6,11,21,1,76,16,22,0,7,11,21,1,110,16,22,0,8,11,21,1,56,15,112,7,21,0,1,21,1,84,16,17,22,0,9,11,14,21,0,9,21,0,3,16,21,1,59,21,0,4,21,1,21,21,1,101,21,1,30,21,0,7,8,7,16,17,21,1,8,16,14,21,0,9,21,1,21,15,113,7,16,21,0,3,16,22,0,10,11,14,21,0,1,21,1,112,21,0,9,17,21,1,56,21,1,97,21,1,30,21,1,21,21,1,73,7,8,7,21,0,10,17,21,1,74,16,25,21,0,1,21,1,76,16,21,1,76,0,0,17,21,1,8,16,14,21,0,1,21,1,21,21,1,33,7,16,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,1,21,1,78,0,8,17,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,1,21,1,7,21,0,1,21,1,6,16,22,0,5,11,17,22,0,6,11,14,0,1,22,0,7,11,14,21,0,5,21,1,21,21,1,110,21,1,28,21,1,21,15,114,7,8,21,0,4,9,7,16,25,21,0,1,21,1,3,16,21,1,8,16,14,21,1,114,21,1,25,7,22,0,3,11,14,21,0,1,21,0,3,21,1,21,21,0,3,7,21,1,42,21,1,21,21,1,21,21,1,45,21,1,30,21,1,82,8,7,7,7,3,0,21,1,73,16,21,1,73,16,19,3,2,21,1,23,21,1,59,21,1,73,0,0,19,8,16,25,21,0,1,21,1,3,16,21,1,8,16,14,21,0,2,21,1,59,16,21,1,73,0,0,17,22,0,3,11,14,21,0,2,21,1,75,15,115,3,2,21,1,23,21,0,3,8,16,22,0,4,11,14,21,0,1,21,1,84,16,21,1,75,21,1,29,21,1,78,8,21,0,4,17,21,1,8,16,14,21,0,1,21,1,84,16,21,1,101,21,1,30,21,1,75,8,21,0,4,17,21,1,76,21,0,4,17,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,1,21,1,26,21,1,114,21,0,1,21,1,31,21,1,97,8,7,9,15,116,3,2,21,1,23,21,0,3,8,21,0,2,17,25,21,0,2,21,1,76,16,21,1,76,0,0,17,21,1,8,16,14,21,0,1,21,1,84,16,22,0,3,11,21,1,75,21,1,29,21,1,76,8,21,0,2,17,21,1,8,16,14,21,0,2,21,1,21,21,1,33,7,16,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,3,21,1,73,21,1,71,21,1,62,21,1,31,21,1,77,8,19,21,0,2,17,21,1,42,21,1,71,7,16,21,1,8,16,14,0,1,21,1,73,21,0,2,17,21,1,63,21,0,3,17,21,1,61,21,0,2,17,22,0,2,12,14,21,0,2,21,1,75,16,21,1,70,21,1,30,21,1,110,8,16,21,1,62,16,21,1,42,21,1,25,21,1,63,21,0,3,21,1,31,21,1,19,8,19,21,1,61,21,0,2,21,1,31,21,1,19,8,19,7,0,1,17,21,1,27,21,1,19,7,21,0,1,21,1,82,16,17,25,21,0,2,21,1,21,21,0,1,21,1,31,21,1,120,8,7,16,25,21,0,1,21,1,76,21,1,30,0,1,8,21,1,42,21,1,72,7,9,21,1,29,21,1,27,21,1,62,7,8,21,0,2,17,22,0,3,11,14,21,0,1,0,1,21,0,3,3,2,15,117,3,2,21,1,23,0,1,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,118,22,0,8,11,14,21,0,4,21,1,76,21,1,30,0,1,8,21,1,32,21,0,1,8,9,21,0,8,3,2,21,1,19,21,0,6,21,1,75,0,0,17,17,25,21,0,1,22,0,2,11,14,21,1,73,21,1,30,0,1,8,21,1,32,15,119,8,25,21,0,2,21,1,76,16,21,1,27,21,1,62,7,0,0,17,22,0,5,11,14,21,0,5,21,1,78,0,1,17,21,1,8,16,14,21,0,1,21,1,76,16,21,1,78,21,0,5,17,21,1,8,16,14,21,0,2,21,1,44,0,0,17,22,0,6,11,21,1,42,21,1,63,7,16,22,0,7,11,14,0,1,21,1,123,21,0,2,21,1,82,16,21,1,31,21,1,19,8,21,1,29,21,0,4,8,7,21,0,7,17,22,0,8,11,14,21,0,2,21,1,75,16,0,0,0,0,21,1,31,21,1,62,21,1,28,21,1,110,8,8,21,1,63,21,0,7,19,21,1,21,21,1,61,21,1,30,21,0,7,8,21,1,31,21,0,8,8,7,9,21,1,27,21,1,78,7,0,1,19,21,1,42,21,1,71,7,9,3,2,21,1,23,21,1,73,21,1,30,0,1,8,8,16,21,1,8,16,14,21,0,1,21,1,76,16,21,1,27,21,1,62,7,21,0,5,17,22,0,9,11,14,21,0,1,21,1,44,21,0,9,17,22,0,10,11,14,21,0,10,21,1,122,21,0,6,17,22,0,11,11,14,21,0,11,21,1,42,21,1,123,21,0,1,21,1,82,16,21,1,31,21,1,19,8,21,1,31,21,0,4,21,1,30,21,0,2,21,1,82,16,21,1,31,21,1,19,8,8,8,7,7,16,22,0,12,11,14,21,1,27,0,1,7,21,1,78,21,0,12,21,1,30,21,1,63,21,1,30,21,0,6,21,1,42,21,1,63,7,16,8,8,19,22,0,13,11,14,21,0,9,21,1,110,16,21,1,21,21,0,1,21,1,84,16,21,1,31,21,1,19,8,7,16,21,1,42,21,1,63,7,21,1,110,9,21,1,31,21,1,82,8,16,21,1,63,21,0,10,21,1,42,21,1,63,7,16,17,21,1,21,15,120,21,1,30,21,0,2,21,1,75,16,8,7,16,25,21,0,1,22,0,2,11,14,21,1,94,21,1,71,7,21,1,70,9,21,1,22,21,1,71,7,21,1,94,21,1,61,7,9,3,2,21,1,19,21,0,1,17,22,0,3,11,14,15,121,25,21,0,1,21,1,76,16,21,1,78,0,0,17,21,1,8,16,14,21,0,1,21,1,126,16,22,0,3,11,14,21,0,1,21,1,75,16,21,1,110,16,21,1,21,0,0,21,1,25,21,0,1,21,1,76,21,1,73,0,0,19,21,1,32,21,1,92,21,1,73,7,8,16,21,1,97,21,0,3,17,21,1,31,21,1,19,8,21,1,29,21,1,84,8,0,0,21,1,31,21,1,62,8,19,3,2,21,1,23,21,1,73,21,1,30,0,1,8,8,7,16,21,1,97,21,0,3,21,1,7,21,1,30,21,1,56,0,0,7,8,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,21,1,8,16,14,21,0,1,21,0,3,21,1,91,21,1,110,8,21,0,2,21,1,84,16,17,21,0,3,21,1,91,21,1,59,8,21,0,2,17,25,21,0,1,21,1,59,21,1,76,0,1,19,21,1,32,21,1,73,8,16,22,0,1,12,14,21,0,2,21,1,76,16,21,1,77,0,0,17,21,1,8,16,14,21,0,2,21,1,82,16,22,0,2,12,14,21,0,1,21,1,84,16,21,1,75,21,1,29,21,1,78,8,21,0,2,17,21,1,8,16,14,21,0,2,21,1,82,16,21,1,21,21,1,34,7,16,21,1,42,21,1,71,7,16,21,1,8,16,14,21,0,2,21,1,132,1,16,21,1,70,16,21,1,42,21,1,61,7,16,21,1,62,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,42,21,1,71,7,16,21,1,8,16,14,21,0,3,21,1,110,16,21,1,25,21,1,112,21,1,27,21,1,132,1,21,1,28,21,1,70,8,7,19,21,0,2,17,21,1,117,21,0,2,17,22,0,2,12,14,21,0,1,21,1,84,16,21,1,118,21,0,2,17,21,1,21,21,1,42,21,1,68,7,7,16,21,1,110,16,21,1,21,21,1,27,21,0,1,7,21,1,121,21,1,97,21,1,30,21,0,2,8,19,7,16,25,21,0,1,21,1,131,1,21,1,30,21,0,2,8,21,1,136,1,21,1,31,21,1,92,21,1,86,7,8,9,21,1,29,21,1,131,1,8,21,0,2,17,25,21,0,1,15,122,21,0,5,21,1,139,1,21,0,1,21,0,4,21,0,2,17,17,7,21,0,2,17,25,21,0,1,21,1,3,16,21,1,8,16,14,21,0,1,21,1,76,16,21,1,76,0,1,17,21,1,8,16,14,21,0,1,21,1,139,1,16,25,21,0,1,21,1,75,21,1,28,21,1,110,8,21,1,59,21,1,126,19,16,21,1,8,16,14,21,0,1,21,1,118,16,21,1,21,21,1,75,7,16,25,21,1,27,0,1,21,1,28,21,1,8,8,3,1,21,1,117,21,0,1,21,1,97,0,0,17,17,7,21,1,139,1,21,1,73,21,1,131,1,21,0,1,21,1,97,0,1,17,19,21,1,139,1,9,19,25,21,0,1,21,1,141,1,16,25,21,0,1,21,0,5,21,0,2,17,22,0,6,11,14,0,1,22,0,7,11,22,0,8,11,14,21,0,6,0,1,21,1,89,15,123,8,16,14,21,0,1,22,0,9,11,14,15,124,22,0,10,11,14,21,0,7,21,0,10,21,1,25,21,0,4,21,0,2,19,7,16,22,0,11,11,14,21,0,8,21,1,62,16,21,0,10,21,1,25,21,1,142,1,21,0,4,7,21,0,2,19,7,16,22,0,12,11,14,21,0,6,0,1,21,1,89,21,1,27,21,0,11,21,0,12,3,2,7,21,1,139,1,0,1,21,1,31,21,1,73,8,19,21,1,139,1,21,1,67,19,8,16,25,21,1,43,21,1,29,21,1,21,21,0,1,7,8,25,21,0,1,25,21,0,1,25,21,0,1,25,21,0,1,14,21,1,7,21,2,79,16,25,0,0,21,2,10,21,1,6,17,22,1,6,12,14,21,0,1,21,2,19,21,1,6,17,25,21,1,8,21,1,7,21,1,5,21,2,19,21,0,1,17,17,22,1,8,12,25,21,0,2,21,2,39,16,22,0,5,11,14,21,0,2,21,2,15,16,21,2,20,16,21,2,42,21,2,11,21,2,30,21,0,1,21,2,39,16,21,2,31,21,2,19,8,21,2,15,21,0,5,21,2,31,21,2,19,8,19,8,7,0,0,17,21,2,8,16,14,21,0,5,21,2,42,21,2,11,7,0,0,17,21,2,20,16,21,2,21,21,0,1,21,2,18,16,21,2,31,21,2,19,8,21,0,4,21,0,2,21,2,18,16,21,2,31,21,2,19,8,19,7,16,21,2,18,21,0,5,17,25,21,0,2,21,2,39,16,22,0,5,11,14,21,0,2,21,2,15,16,22,0,6,11,14,21,0,1,21,2,39,16,22,0,7,11,14,21,0,6,21,2,20,16,21,2,42,21,2,11,21,2,30,21,0,7,21,2,31,21,2,19,8,21,2,15,21,0,5,21,2,31,21,2,19,8,19,8,7,0,0,17,21,2,8,16,14,21,0,6,21,2,10,21,0,1,21,2,15,16,17,21,2,20,16,21,2,42,21,2,11,21,2,30,21,2,9,21,2,30,21,0,6,8,21,2,27,21,2,19,7,21,0,7,19,8,7,0,0,17,22,0,8,11,14,21,0,2,21,2,18,16,22,0,9,11,14,21,0,1,21,2,18,16,22,0,10,11,14,21,0,8,21,2,20,21,2,29,21,2,21,21,2,27,21,0,10,7,21,2,19,21,2,9,21,2,30,21,2,11,21,2,30,21,0,8,8,8,19,21,0,4,21,0,9,21,2,31,21,2,19,8,19,7,8,21,0,9,21,2,40,16,17,21,2,18,16,21,2,18,21,0,7,17,25,21,0,1,21,2,47,21,0,4,7,21,0,2,17,25,21,0,1,21,2,21,15,125,21,0,2,7,7,16,25,21,0,2,21,2,21,15,126,21,0,1,7,7,16,25,21,1,6,21,2,11,0,2,17,21,2,16,21,0,1,21,2,42,21,2,37,7,16,22,1,10,12,21,2,10,21,0,1,21,2,42,21,2,38,7,16,22,1,9,12,17,17,25,21,0,1,14,21,2,27,0,1,7,21,2,36,0,1,21,2,123,21,1,8,21,2,31,21,2,19,8,21,2,29,21,0,4,8,7,21,1,7,17,19,22,0,5,11,14,21,2,25,21,1,6,3,2,21,2,23,21,2,16,21,2,30,21,1,6,8,8,22,0,6,11,14,0,1,21,2,15,21,1,6,17,21,2,9,21,1,6,17,21,2,5,0,2,17,21,2,38,16,22,0,7,11,21,2,20,16,21,2,21,21,2,25,21,2,9,0,0,19,21,2,10,21,0,7,19,21,2,13,0,2,19,7,16,21,2,42,15,127,7,21,1,6,21,2,20,16,17,25,21,0,1,21,2,21,21,2,34,7,16,21,2,42,21,2,11,7,0,0,17,21,2,8,16,14,0,0,21,2,10,21,1,3,17,22,0,3,11,14,21,2,25,21,2,10,21,0,3,19,21,2,27,21,2,19,7,21,1,3,21,2,20,16,21,2,21,21,2,10,21,2,30,21,0,3,8,7,16,21,2,22,21,2,25,21,2,27,21,2,19,7,21,0,1,19,21,2,15,0,1,19,21,2,11,21,2,10,19,21,2,9,21,2,25,19,7,16,19,22,0,4,11,14,21,0,1,21,2,22,21,2,9,7,16,21,2,31,21,2,19,8,22,0,5,11,14,0,1,21,0,4,16,22,0,6,11,21,0,5,16,22,0,7,11,14,21,0,3,21,0,5,16,21,2,20,16,21,2,21,15,128,1,7,16,25,21,0,1,21,2,44,0,0,17,22,0,3,11,21,2,42,21,2,11,7,0,0,17,22,0,4,11,14,21,0,4,21,2,20,16,21,2,18,21,0,3,17,21,2,21,21,2,9,21,2,30,21,2,11,21,2,30,21,0,4,8,8,21,2,27,21,2,19,7,21,0,1,21,2,18,16,19,7,21,0,2,17,25,21,0,2,21,2,21,21,0,1,21,2,31,21,2,19,8,7,16,25,21,0,1,14,21,1,9,21,2,19,21,1,11,21,2,19,21,1,13,17,17,22,0,3,11,14,21,1,13,21,2,9,0,0,17,22,1,13,12,21,1,12,16,22,1,14,12,14,21,0,3,25,21,0,1,21,2,15,21,1,14,17,25,21,0,1,21,2,76,21,0,4,17,25,21,1,3,21,2,20,16,21,2,21,21,2,26,7,21,2,30,21,2,4,8,15,129,1,21,2,30,21,2,18,8,3,2,21,2,23,21,1,4,21,2,73,0,1,17,8,21,0,1,17,25,21,0,1,21,2,34,16,21,2,8,16,14,21,0,1,21,2,20,16,25,21,0,1,21,2,76,16,21,2,76,0,0,17,21,2,8,16,14,21,0,1,21,2,21,21,1,3,7,16,21,2,42,21,2,21,21,2,45,21,2,30,21,2,82,8,7,7,3,0,21,2,73,16,17,25,21,1,9,21,1,7,21,2,61,21,0,4,17,7,22,0,5,11,14,21,0,1,21,2,56,21,0,5,7,21,2,26,21,2,28,21,2,21,21,0,1,21,2,31,21,0,5,8,7,8,21,2,25,21,2,28,21,2,21,21,2,25,21,0,5,21,0,2,19,7,8,21,1,8,3,4,21,2,23,21,2,59,21,2,29,21,2,85,8,21,2,77,21,0,4,21,2,69,0,1,17,19,21,2,72,0,1,21,2,77,21,0,4,17,21,2,71,21,1,7,17,19,21,2,81,0,2,19,21,2,42,21,2,61,21,2,30,0,2,21,2,31,21,2,63,8,8,7,9,8,21,0,2,17,25,21,0,2,21,2,20,16,21,2,21,21,0,1,21,2,84,16,21,2,31,21,2,19,8,7,16,22,0,3,11,14,21,0,1,21,2,44,21,0,2,17,22,0,4,11,21,2,42,21,2,63,7,16,22,0,5,11,14,21,0,3,21,2,42,21,2,63,7,16,21,2,20,16,21,2,21,21,2,25,21,2,63,21,0,5,19,21,2,61,21,0,5,21,2,20,16,21,2,82,21,0,4,17,19,21,2,28,21,2,21,21,0,1,21,2,82,16,21,2,31,21,2,19,8,7,8,7,16,21,2,82,21,0,3,17,25,21,0,1,21,2,76,16,21,2,78,0,0,17,21,2,8,16,14,21,0,1,21,1,3,21,0,2,17,25,21,0,2,21,2,76,16,21,2,77,0,0,17,21,2,8,16,14,21,0,1,21,2,84,16,21,2,75,21,2,29,21,2,78,8,21,0,2,17,21,2,8,16,14,21,0,2,21,2,75,16,22,0,3,11,14,21,0,2,21,2,82,16,21,2,31,21,2,19,8,22,0,4,11,14,21,0,1,21,0,3,21,2,73,0,1,17,21,2,32,15,130,1,8,0,1,17,25,21,0,2,21,2,33,16,21,2,8,16,14,21,0,1,21,2,75,16,22,0,3,11,14,0,1,21,2,73,21,0,2,17,22,0,4,11,14,21,0,2,21,2,67,16,22,0,5,11,21,2,68,21,0,3,17,22,0,6,11,14,21,0,5,3,1,22,0,7,11,14,0,0,22,0,8,11,14,21,0,6,21,2,20,16,21,0,4,21,2,32,21,2,61,8,21,0,6,21,2,62,21,0,3,17,17,21,0,1,21,2,76,16,21,2,75,0,0,17,21,2,32,15,131,1,8,21,0,1,17,22,0,9,11,14,21,0,9,21,2,21,21,0,1,21,2,82,16,21,2,31,21,2,19,8,7,16,21,0,5,21,2,73,21,0,3,17,21,2,32,15,132,1,21,0,1,7,8,16,21,2,82,21,0,7,17,25,21,0,2,21,2,82,16,21,2,25,21,2,83,21,2,29,21,2,21,21,2,61,7,8,21,2,70,19,21,1,3,17,21,2,56,21,0,1,21,2,31,21,2,97,21,2,30,21,2,21,21,2,73,7,8,8,7,16,21,2,74,21,2,82,21,2,84,21,2,28,21,0,1,21,2,84,16,21,2,104,21,2,30,21,2,75,8,21,0,2,17,21,2,31,21,2,45,8,8,19,16,25,21,0,1,21,2,75,21,2,30,21,1,4,8,21,2,32,15,133,1,8,16,14,21,1,5,21,2,19,0,0,21,2,61,21,1,3,17,22,1,3,12,17,25,21,0,2,21,2,110,16,21,2,21,21,2,63,21,2,30,21,0,1,21,2,76,21,1,8,17,8,21,2,27,21,2,119,7,21,1,6,19,21,2,84,21,2,31,21,2,19,8,21,0,1,19,7,16,25,21,0,1,21,2,101,16,21,2,21,21,2,42,21,2,61,7,7,16,22,0,3,11,14,21,0,3,21,2,104,0,8,17,21,2,112,21,0,1,17,21,2,62,21,0,3,21,2,111,16,21,2,19,0,1,17,21,2,110,16,17,25,21,0,1,14,21,1,6,21,2,19,21,1,7,17,21,2,25,0,0,21,2,61,21,1,7,17,22,1,7,12,17,25,21,0,1,21,2,76,16,21,2,76,0,0,17,21,2,8,16,14,21,0,1,21,2,21,21,2,75,7,16,25,21,0,2,21,2,21,21,2,114,21,2,25,7,7,16,21,2,63,21,1,4,21,2,104,0,0,17,21,2,111,16,21,2,45,0,0,3,1,17,21,2,22,21,2,63,7,16,21,2,111,16,17,21,2,42,21,2,21,21,2,21,21,2,61,7,7,7,16,21,2,21,21,0,1,21,2,44,21,1,4,21,2,75,16,17,21,2,45,21,1,4,21,2,42,21,2,63,7,16,3,1,17,21,2,27,21,2,82,7,21,0,1,17,21,2,31,21,2,97,8,7,16,25,21,0,1,21,2,75,21,2,29,21,2,62,8,21,0,2,17,21,2,63,16,22,0,3,11,14,21,0,1,21,2,75,21,2,29,21,2,68,8,21,0,2,17,22,0,4,11,14,21,0,1,15,134,1,21,2,30,21,2,75,21,2,61,21,0,4,21,2,110,16,21,2,61,0,0,17,21,2,62,16,19,8,21,2,29,15,135,1,8,21,0,2,17,22,0,5,11,14,21,0,5,21,0,3,3,2,25,21,0,2,22,0,3,11,14,21,0,1,22,0,4,11,14,15,136,1,21,1,7,3,2,21,2,23,21,2,76,21,2,30,21,1,6,8,8,22,0,5,11,14,0,1,21,0,5,16,25,15,137,1,22,0,3,11,14,0,8,21,0,3,0,0,21,2,61,21,0,1,17,17,21,2,61,0,0,17,25,21,0,2,21,2,124,21,0,1,21,2,31,21,1,13,8,7,16,25,21,0,2,21,2,76,16,21,2,27,21,2,62,7,0,0,17,22,0,3,11,14,21,0,3,21,2,78,0,1,17,21,2,8,16,14,21,0,1,21,2,43,16,21,2,25,21,2,28,21,0,3,21,2,91,0,1,8,8,21,2,25,21,0,3,21,2,91,21,2,73,8,3,2,21,2,23,21,0,3,21,2,73,0,1,17,8,21,2,29,21,2,21,21,2,84,7,8,21,1,3,9,3,2,21,2,23,21,0,2,21,2,75,16,21,2,73,0,1,17,8,15,138,1,3,2,21,2,23,21,2,82,21,2,28,21,2,75,8,21,2,73,0,5,19,21,2,29,21,2,71,8,8,21,0,2,17,25,21,0,1,25,21,0,1,21,2,33,16,21,2,8,16,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,61,0,1,17,21,2,110,16,21,2,117,21,1,9,3,1,17,21,2,22,21,2,26,21,2,28,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,21,3,10,16,22,0,4,11,14,0,1,22,0,5,11,22,0,6,11,22,0,7,11,14,0,4,22,0,8,11,14,21,0,1,0,0,21,3,15,21,2,7,17,21,3,10,0,0,17,21,3,32,21,3,21,21,3,11,21,3,30,21,2,7,8,7,8,16,21,3,31,21,3,19,8,21,3,29,21,1,5,8,22,0,9,11,14,21,0,9,0,1,0,0,0,2,3,4,22,0,10,11,14,21,3,9,15,139,1,3,2,21,3,19,21,0,3,21,3,16,0,5,17,17,22,0,11,11,14,15,140,1,22,0,12,11,14,15,141,1,15,142,1,21,0,12,3,3,21,3,23,15,143,1,8,22,0,13,11,14,21,0,1,21,3,21,21,0,1,21,3,31,15,144,1,8,7,16,25,21,1,6,21,1,7,21,3,15,21,0,1,17,21,3,32,15,145,1,8,16,25,21,0,1,21,3,67,21,2,4,17,21,3,21,21,0,2,21,3,31,21,3,19,8,7,16,25,21,0,1,0,0,21,3,62,21,1,3,17,21,3,73,21,0,2,17,21,3,32,21,3,92,21,0,0,21,3,30,21,0,2,21,3,61,0,0,17,8,7,8,16,21,2,3,21,0,2,21,1,4,16,17,25,21,0,2,21,3,44,0,0,17,22,0,3,11,21,3,45,22,1,7,13,14,21,0,3,21,3,42,21,3,63,7,16,22,1,8,12,21,3,25,21,3,28,21,3,20,8,21,3,21,21,3,61,7,21,3,63,19,21,0,1,17,25,21,1,6,21,3,62,21,1,5,17,21,3,63,21,1,8,17,21,3,20,16,21,3,21,21,0,4,21,3,4,16,21,3,82,16,21,3,19,0,1,17,7,16,21,3,45,21,3,27,21,3,45,7,3,2,21,3,23,21,1,4,8,21,0,1,21,3,82,16,17,25,21,0,1,22,2,4,12,21,3,27,21,3,19,7,21,2,6,17,22,2,5,12,14,0,8,22,2,3,12,25,21,0,2,21,3,21,21,0,1,21,3,31,21,3,19,8,7,16,25,21,0,1,21,3,76,21,0,2,17,21,3,22,21,3,71,7,16,21,3,42,21,3,61,7,16,22,0,3,11,14,21,0,3,21,3,110,16,21,3,21,21,0,2,21,3,31,21,3,19,8,7,16,21,3,42,21,3,63,7,16,22,0,4,11,14,21,0,3,21,3,74,21,3,30,21,1,4,8,21,3,32,21,0,2,21,0,1,3,2,21,3,31,21,3,56,21,3,19,7,8,21,3,28,15,146,1,8,8,16,14,21,0,4,25,21,1,4,21,3,61,21,3,30,21,0,1,8,21,3,29,21,2,5,8,21,1,3,17,21,3,76,21,3,30,0,1,8,21,3,32,21,0,1,21,3,61,0,0,17,21,3,28,21,1,5,8,8,16,25,21,0,1,0,0,21,3,31,21,3,74,8,21,3,32,15,147,1,8,21,0,2,17,25,21,0,2,21,3,127,16,21,3,111,16,22,0,3,11,14,21,0,1,21,3,126,21,0,2,21,3,97,21,0,3,17,17,21,3,27,21,3,62,7,0,0,17,21,3,69,0,1,17,21,3,27,21,3,97,7,21,0,3,17,22,0,4,11,14,21,0,1,21,1,3,21,3,91,21,3,59,8,21,0,2,21,3,97,21,0,4,17,17,21,2,2,21,3,32,21,3,63,21,3,30,21,3,62,21,3,30,21,0,4,8,8,21,3,61,21,3,26,19,8,21,0,2,21,3,75,16,17,25,21,0,1,21,1,8,21,4,10,0,0,17,21,4,32,21,1,9,21,4,10,0,0,19,21,4,32,15,148,1,8,8,0,0,21,4,10,21,0,1,17,17,25,21,0,2,21,4,9,21,1,3,17,22,1,4,12,14,21,0,1,21,4,9,21,1,3,17,22,1,7,12,21,2,6,16,22,1,6,12,21,4,9,21,1,3,17,21,2,6,16,22,1,5,12,14,21,1,7,21,4,16,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,21,4,9,0,0,17,22,1,4,12,21,4,15,21,1,6,17,21,4,11,0,2,17,21,4,9,22,1,8,13,14,21,0,2,25,21,0,1,21,4,9,0,0,17,22,1,7,12,21,4,15,21,1,5,17,21,4,9,22,1,8,13,14,21,0,1,25,21,0,1,21,1,10,21,4,23,21,1,8,8,21,0,2,17,25,21,0,1,21,4,19,21,1,7,21,1,13,21,1,4,17,17,25,0,0,21,4,9,21,0,1,17,21,2,4,16,22,2,6,12,21,2,5,16,22,2,7,12,14,21,2,6,25,21,0,1,21,4,42,21,4,62,7,16,21,4,63,16,22,2,3,12,14,21,0,1,21,4,42,21,4,68,7,16,21,4,63,21,1,4,17,22,1,4,12,25,0,2,21,4,64,21,0,2,17,21,4,68,16,22,0,3,11,21,4,61,21,0,1,17,22,0,4,11,21,3,2,16,22,0,5,11,14,21,0,1,21,0,4,3,2,21,4,19,21,0,5,17,21,2,3,21,0,2,21,4,67,0,2,17,21,4,63,21,0,5,17,21,4,61,21,0,3,17,17,25,21,0,1,14,0,2,22,2,8,12,14,21,2,4,22,2,7,12,14,21,0,1,22,2,4,12,25])
,[1,0,2,32,3,8,Infinity,-Infinity,-1]
,[[0,1,0,0],[0,0,3,150],[2,0,2760,6],[2,0,2788,6],[0,0,2823,3],[0,0,2827,3],[0,0,2831,3],[1,0,2835,5],[2,0,2853,6],[2,0,2868,6],[2,0,2887,6],[2,0,2909,6],[2,0,2931,6],[0,0,2964,3],[0,0,2976,3],[0,0,2985,3],[1,0,2994,9],[0,0,3114,3],[0,0,3159,4],[1,1,3242,4],[1,1,3318,3],[0,0,3387,3],[0,0,3398,5],[2,0,3487,12],[0,0,3707,4],[0,0,3757,6],[0,0,3856,4],[2,0,4024,15],[1,1,4225,2],[0,0,4251,3],[0,0,4280,3],[0,0,4308,3],[0,0,4354,4],[0,0,4460,3],[0,0,4489,3],[0,0,4512,3],[0,0,4535,3],[0,0,4547,3],[0,0,4578,3],[0,0,4584,5],[0,0,4702,5],[0,0,4736,3],[0,0,4745,3],[1,1,4751,2],[2,0,4822,10],[2,0,4881,8],[1,1,5071,2],[1,0,5081,5],[2,1,5122,4],[0,0,5158,8],[0,0,5396,4],[0,0,5479,3],[0,0,5530,4],[0,0,5653,3],[0,0,5704,4],[0,0,5867,3],[0,0,5915,4],[0,0,5968,3],[0,0,5987,3],[0,0,6020,3],[0,0,6034,7],[0,0,6083,11],[1,0,6352,8],[0,0,6472,4],[0,0,6559,5],[0,0,6716,4],[0,0,6929,3],[0,0,6948,4],[1,0,7020,9],[1,1,7090,3],[1,0,7114,14],[1,1,7552,4],[0,0,7603,4],[0,0,7746,4],[0,0,7813,4],[0,0,8083,3],[2,0,8126,6],[0,0,8155,3],[0,0,8194,3],[0,0,8236,3],[1,1,8292,2],[2,0,8301,13],[1,1,8455,2],[1,1,8470,2],[1,1,8474,2],[1,1,8478,2],[0,0,8482,3],[0,0,8494,3],[0,0,8519,3],[1,0,8541,6],[1,0,8673,11],[1,0,8917,5],[0,0,8932,3],[0,0,8947,3],[0,0,8962,3],[1,0,9010,8],[0,0,9159,8],[0,0,9345,5],[0,0,9428,3],[0,0,9447,4],[0,0,9499,3],[1,0,9510,5],[0,0,9521,3],[0,0,9572,3],[0,0,9592,3],[1,0,9647,6],[0,0,9802,6],[0,0,9938,3],[0,0,9967,5],[0,0,10065,10],[0,0,10252,3],[0,0,10354,3],[0,0,10397,3],[0,0,10452,4],[0,0,10514,3],[0,0,10546,3],[0,0,10576,3],[0,0,10699,6],[0,0,10806,6],[0,0,10856,4],[0,0,10886,3],[0,0,10905,4],[1,1,11063,2],[0,0,11067,3],[1,0,11109,5],[1,0,11147,5],[1,0,11158,5],[0,0,11169,14],[0,0,11355,3],[0,0,11377,3],[0,0,11403,3],[0,0,11459,4],[1,0,11521,5],[0,0,11592,3],[0,0,11622,3],[0,0,11641,5],[0,0,11756,3],[0,0,11811,3],[0,0,11835,5],[0,0,11964,3],[0,0,12007,3],[0,0,12094,3],[0,0,12132,3],[0,0,12164,3],[0,0,12182,3],[0,0,12200,3],[0,0,12230,3],[0,0,12273,6],[0,0,12353,3]]
)(list([
(x,w) => +(x.a===1) // IsArray
,(x,w) => 0 // Type
,(x,w) => has(w)?Math.log(x)/Math.log(w):Math.log(x) // Log
,group_len // GroupLen
,group_ord // GroupOrd
,(x,w) => assert(x===1) // !
,(x,w) => has(w)?w+x:x // +
,(x,w) => (has(w)?w:0)-x // -
,(x,w) => w*x // ×
,(x,w) => (has(w)?w:1)/x // ÷
,(x,w) => has(w)?Math.pow(w,x):Math.exp(x) // ⋆
,(x,w) => Math.floor(x) // ⌊
,(x,w) => has(w)?+(x===w):x.a?x.sh.length:0 // =
,lesseq // ≤
,(x,w) => list(x.sh) // ≢
,(x,w) => (r=>arr(r,has(w)?w:[r.length],1))(x.slice()) // ⥊
,(x,w) => x[w] // ⊑
,(x,w) => list(Array(x).fill(undefined).map((_,i)=>i)) // ↕
,table // ⌜
,scan // `
]));
// Compiler
let compile = run(
new Uint8Array([0,69,22,0,0,11,14,0,70,22,0,1,11,14,0,71,22,0,2,11,14,0,72,22,0,3,11,14,0,73,22,0,4,11,14,0,74,22,0,5,11,0,75,0,76,0,77,0,20,21,0,1,17,0,78,0,79,0,80,0,81,0,82,21,0,2,0,83,0,84,0,20,21,0,3,17,0,20,21,0,4,17,21,0,0,0,20,0,85,17,3,13,22,0,6,11,14,15,1,21,0,6,0,20,16,7,22,0,7,11,14,21,0,6,0,37,0,13,7,16,0,18,0,20,0,50,19,0,22,0,13,19,0,41,0,0,7,9,0,45,0,35,0,37,0,21,7,7,8,16,22,0,8,22,0,9,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,4,13,11,14,21,0,19,0,30,16,0,0,0,51,17,22,0,21,11,14,0,30,0,45,0,1,8,0,12,0,9,0,15,0,44,0,50,8,19,0,30,0,44,0,49,8,19,22,0,22,11,14,21,0,6,0,22,0,52,17,0,37,0,13,7,16,0,40,0,0,7,16,22,0,23,11,14,0,50,0,20,0,55,0,24,16,0,25,16,0,26,0,54,17,17,0,20,21,0,6,0,22,0,53,17,0,37,0,13,7,16,0,20,0,50,17,0,26,16,0,22,21,0,16,0,30,0,49,17,0,1,21,0,23,17,17,17,22,0,24,11,14,0,53,0,50,3,2,0,38,0,1,7,0,53,0,54,0,56,3,3,17,0,19,16,22,0,25,11,14,15,2,22,0,26,11,14,15,3,22,0,27,11,14,0,30,0,44,0,49,8,0,23,0,44,0,49,8,21,0,27,3,3,0,47,0,29,0,31,0,88,0,20,0,89,17,19,0,30,9,8,22,0,28,11,14,15,4,22,0,29,11,14,15,5,22,0,30,11,14,15,6,22,0,31,11,14,21,0,31,25,21,0,1,0,27,16,22,0,2,11,14,0,18,0,27,21,0,1,0,29,21,0,2,17,19,0,35,0,1,7,0,49,19,0,35,0,29,7,21,0,2,19,25,0,86,0,14,21,0,1,17,22,0,3,11,14,0,87,0,14,21,0,1,17,0,9,0,44,0,23,0,44,0,55,8,0,22,0,13,19,8,16,0,26,16,22,0,4,11,14,0,88,0,14,21,0,1,17,0,26,16,22,0,5,11,14,21,0,4,21,0,5,0,23,0,57,17,21,0,3,0,26,16,3,3,0,20,16,22,0,6,11,0,27,16,22,0,7,11,14,21,0,6,0,29,21,0,7,17,22,0,6,12,14,21,0,4,0,0,0,55,17,21,0,5,0,23,0,49,17,0,49,0,20,21,1,1,0,14,21,0,1,17,17,0,26,16,0,26,0,44,21,0,3,0,41,0,0,7,16,0,20,0,50,17,0,45,0,29,0,42,0,18,0,20,0,50,19,0,23,0,57,19,0,1,0,18,19,8,8,8,16,3,3,0,20,16,0,29,21,0,7,17,22,0,8,11,14,15,7,0,48,15,8,8,22,0,9,11,14,21,0,8,0,27,21,0,6,17,0,13,0,45,0,20,8,16,0,13,0,35,0,22,7,0,49,19,0,45,21,0,9,8,16,0,23,0,57,17,22,0,10,11,14,21,0,8,0,36,0,20,7,21,0,6,17,0,26,21,0,10,17,22,0,11,11,14,0,19,0,35,0,20,7,21,0,1,0,13,16,19,0,39,0,26,7,9,0,23,0,57,19,22,0,12,11,14,21,0,11,21,0,12,16,0,41,0,13,7,16,0,8,16,22,0,13,11,14,21,0,11,0,26,21,0,3,0,29,21,0,6,0,26,21,0,10,17,17,0,8,16,17,22,0,14,11,14,21,0,14,21,0,12,16,0,41,0,13,7,16,0,2,21,0,14,0,36,0,30,7,16,21,0,12,16,0,41,0,0,7,16,17,0,35,0,1,7,0,49,17,0,35,0,34,7,21,0,1,17,22,0,15,11,0,33,16,22,0,16,11,14,21,0,14,0,36,0,25,0,42,0,30,8,7,16,21,0,12,16,0,26,21,0,13,17,22,0,17,11,14,21,0,1,0,26,21,0,13,17,21,1,7,16,22,0,18,11,14,21,1,17,21,1,18,21,1,19,3,3,0,37,0,30,7,0,49,17,0,40,0,0,7,16,0,21,21,1,17,0,30,16,17,21,1,22,21,0,18,17,22,0,19,11,0,11,0,44,0,18,0,20,0,50,19,0,22,0,13,19,8,16,22,0,20,11,14,21,0,18,0,34,21,0,20,0,41,0,0,7,16,0,2,21,0,19,17,0,35,0,1,7,0,49,17,17,22,0,21,11,14,21,1,3,0,13,16,22,0,22,11,14,21,1,19,0,40,0,0,7,16,0,0,0,57,17,22,0,23,11,14,21,0,21,0,37,0,26,0,44,0,13,0,44,21,0,23,8,8,7,16,0,15,0,44,21,1,19,0,30,16,0,45,0,0,8,8,0,2,0,17,19,0,1,0,18,19,21,0,22,17,22,0,24,11,14,21,0,24,0,29,0,44,0,28,8,21,0,18,0,26,21,0,20,17,0,35,21,1,22,7,21,1,19,17,17,0,33,16,22,0,25,11,14,21,0,25,0,37,0,30,7,16,0,35,21,1,22,7,21,1,19,17,0,40,0,0,7,16,22,0,26,11,14,21,0,18,0,26,0,44,21,0,17,8,0,46,21,0,15,0,31,21,0,16,17,0,0,21,0,25,0,13,16,17,0,0,21,1,23,17,8,16,0,26,0,44,21,0,20,8,0,46,21,0,24,0,31,21,0,25,17,0,0,21,1,23,17,8,16,0,26,21,1,20,21,1,22,21,0,18,17,0,10,21,0,19,17,0,8,16,0,10,21,0,20,17,17,22,0,18,12,14,21,1,11,21,1,22,21,0,18,17,0,9,0,44,0,18,0,10,21,1,13,0,30,16,0,0,0,55,0,51,3,2,17,0,32,21,0,18,17,19,0,20,0,49,19,0,22,0,13,19,8,16,0,8,16,0,35,0,26,7,22,0,18,13,14,21,1,11,21,1,22,21,0,18,17,0,9,21,1,13,0,30,16,0,0,0,53,0,54,3,2,17,0,32,21,0,18,17,0,35,0,20,7,0,49,17,0,23,0,49,17,17,0,8,16,0,35,0,26,7,22,0,18,13,14,21,0,21,0,37,0,30,7,16,0,35,0,1,7,21,1,19,0,30,16,17,0,35,0,3,0,42,0,5,8,7,21,0,22,17,0,6,0,50,17,0,14,0,44,0,55,8,0,45,0,9,8,0,0,0,18,19,21,0,21,0,37,0,30,0,44,0,57,8,7,16,0,14,21,0,23,17,17,22,0,27,11,14,21,1,23,0,1,21,0,18,17,21,0,25,0,13,16,0,45,0,11,8,0,9,0,15,0,44,0,50,8,19,16,22,0,28,11,14,21,1,24,0,29,21,0,18,0,5,21,1,23,17,17,0,26,0,44,21,0,28,8,0,46,21,0,27,8,16,22,0,29,11,14,21,1,16,0,30,16,0,35,0,21,7,0,54,17,21,1,22,21,0,18,17,0,2,0,54,17,0,0,22,0,18,13,14,21,0,18,21,0,29,21,0,26,21,0,16,0,20,21,0,25,0,23,21,0,26,17,17,3,4,25,21,1,18,0,30,16,0,0,0,44,0,24,8,0,51,17,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,17,0,30,16,0,45,0,1,8,0,25,0,42,0,40,0,2,0,44,0,58,8,0,45,0,0,8,7,8,9,22,0,7,11,14,21,0,7,0,23,0,44,0,49,8,21,0,7,9,0,1,9,3,2,0,47,0,30,0,14,21,0,3,19,8,22,0,8,11,14,0,23,0,44,0,49,0,45,0,0,8,8,0,50,0,13,0,4,0,58,19,0,3,21,0,7,19,3,2,0,47,0,13,0,11,0,50,19,8,9,0,0,0,22,0,42,21,0,7,8,19,0,44,21,0,4,0,11,16,0,45,0,31,8,8,22,0,9,11,14,0,59,0,60,21,0,9,3,3,0,47,0,29,0,31,21,0,5,21,0,6,3,2,19,0,30,9,8,22,0,10,11,14,21,1,21,0,31,21,0,1,17,0,30,16,22,0,11,11,14,21,0,1,0,22,21,0,11,17,21,0,10,0,23,0,44,0,49,8,21,0,10,9,0,1,9,3,2,0,47,0,30,0,14,21,0,3,19,8,16,22,0,12,11,14,21,0,12,21,0,1,0,13,16,0,11,21,0,11,17,0,48,0,35,0,17,0,23,0,49,0,0,21,0,11,17,19,21,0,8,9,0,4,0,58,19,0,45,0,2,8,7,8,21,0,1,17,25,0,61,22,0,3,11,14,21,0,1,0,6,0,49,17,0,39,0,4,7,21,0,3,17,0,5,16,22,0,4,11,14,21,0,4,0,0,0,49,17,0,41,0,0,7,0,45,0,18,0,20,0,50,19,0,22,0,13,19,0,45,0,26,8,0,1,0,18,0,30,0,57,19,0,24,9,19,8,16,0,27,16,0,27,16,22,0,5,11,14,21,0,1,15,9,21,0,4,17,0,29,21,0,5,17,25,21,0,2,22,0,3,22,0,4,4,2,11,14,21,1,13,0,30,0,45,0,1,8,0,7,0,55,19,0,4,0,57,19,0,2,21,1,22,19,21,0,1,17,22,0,5,11,0,41,0,0,7,16,0,27,16,22,0,6,11,14,21,1,13,0,30,16,0,0,0,55,17,0,35,0,21,7,0,55,17,21,1,22,21,0,1,17,0,2,21,0,5,17,22,0,7,11,14,21,1,14,21,1,22,21,0,1,17,0,10,0,44,0,25,0,44,0,49,8,8,16,22,0,8,11,14,21,0,8,0,29,0,44,21,0,6,8,0,46,0,25,0,44,0,57,8,8,16,22,0,9,11,14,21,0,9,0,10,21,0,8,17,22,0,10,11,14,21,0,8,0,29,21,0,6,17,0,27,16,0,35,0,29,7,22,0,6,13,14,21,0,10,0,8,16,0,2,22,0,4,13,14,0,50,0,12,21,0,5,17,22,0,11,11,14,21,0,4,0,15,0,49,17,0,10,21,0,4,0,14,0,53,17,0,29,0,44,21,0,6,8,0,46,0,25,0,44,0,57,8,8,16,17,0,18,0,2,0,44,0,13,0,42,0,24,8,0,0,0,49,19,8,0,41,0,6,7,9,0,43,0,14,8,0,10,0,44,0,8,8,19,0,9,0,17,19,21,1,13,0,30,16,0,0,0,49,17,0,14,21,0,1,17,0,11,21,0,10,17,17,0,0,22,0,4,13,14,21,1,11,21,1,22,21,0,1,17,0,10,21,0,8,17,0,10,21,0,11,17,0,29,0,35,0,20,7,0,1,0,20,0,42,0,41,0,0,7,8,19,0,49,19,0,27,0,45,0,27,0,45,0,35,0,29,7,8,0,1,0,35,0,29,7,19,0,29,0,44,0,27,8,0,17,19,8,0,17,0,20,0,57,19,19,21,0,6,17,0,23,0,57,17,0,0,0,49,17,0,41,0,0,7,16,0,27,16,22,0,12,11,14,21,0,7,0,29,21,0,12,17,0,41,0,0,7,16,22,0,13,11,0,27,16,22,0,14,11,14,21,0,14,0,35,0,29,7,22,0,12,13,14,21,0,14,0,35,0,29,7,22,0,13,13,14,21,0,12,0,35,0,29,7,22,0,1,13,14,21,0,7,0,29,21,0,12,17,22,0,15,11,14,0,50,0,11,21,0,15,17,0,26,16,22,0,16,11,14,0,50,0,12,21,0,15,17,22,0,17,11,0,41,0,0,7,16,22,0,18,11,14,0,50,0,45,0,20,8,0,41,0,0,7,9,0,26,0,49,0,20,21,0,17,17,19,0,18,0,20,0,50,19,0,22,0,13,19,0,45,0,1,8,9,22,0,19,11,14,0,14,0,42,21,0,19,8,0,23,0,49,19,0,11,0,50,19,22,0,20,11,14,21,0,1,0,27,21,1,16,0,30,16,0,0,0,54,17,0,0,0,50,0,53,0,51,0,54,3,4,17,17,21,0,20,0,44,0,53,8,0,2,0,55,19,0,6,21,0,20,0,44,0,55,8,19,0,2,0,55,19,0,0,21,0,20,0,44,0,49,8,19,0,20,0,50,19,16,22,0,21,11,14,21,1,25,0,29,21,0,21,17,22,0,22,11,14,21,0,4,0,29,21,0,12,17,0,29,0,44,21,0,16,8,0,46,0,51,0,24,16,0,26,0,44,0,15,0,44,0,55,8,0,0,0,49,19,8,16,0,29,21,0,21,0,23,0,49,17,17,8,16,22,0,4,12,14,21,1,23,0,1,21,0,1,17,22,0,23,11,21,0,3,0,45,0,11,8,0,9,0,15,0,44,0,50,8,19,16,22,0,24,11,0,26,16,22,0,25,11,14,21,0,1,0,29,21,0,25,17,22,0,26,11,14,21,1,16,21,1,22,21,0,1,17,0,26,16,22,0,27,11,14,21,1,12,0,30,16,0,14,21,0,1,17,0,29,21,1,12,21,1,22,21,0,1,17,0,2,0,44,0,13,0,42,0,24,8,8,16,0,41,0,6,7,16,17,22,0,28,11,14,21,0,7,0,1,21,0,5,17,0,29,21,0,12,17,0,41,0,0,7,16,0,27,16,22,0,6,12,14,21,0,12,0,29,21,0,6,17,22,0,29,11,14,21,0,8,0,1,21,0,9,17,0,29,21,0,29,17,0,12,0,26,0,43,0,1,8,0,11,19,0,50,17,0,35,0,3,7,0,55,17,0,0,0,49,17,22,0,30,11,14,21,1,13,0,30,16,0,0,0,54,17,0,14,21,0,1,17,0,29,21,0,6,17,0,26,16,22,0,31,11,14,21,0,8,0,29,21,0,29,17,0,27,16,22,0,32,11,0,35,0,29,7,22,0,6,13,14,21,0,12,0,29,21,0,6,17,22,0,29,12,14,21,0,6,0,35,0,29,7,22,0,1,13,14,21,0,6,0,35,0,29,7,22,0,4,13,14,21,0,29,0,35,0,29,7,22,0,11,13,14,21,0,8,0,12,21,0,9,17,0,29,21,0,29,17,0,26,16,22,0,33,11,14,21,0,6,0,27,16,22,0,34,11,14,21,0,32,0,27,16,0,29,22,0,31,13,14,21,1,11,21,1,22,21,0,1,17,22,0,35,11,14,21,0,8,0,29,21,0,29,17,0,10,21,0,11,17,0,10,21,0,35,17,22,0,36,11,14,21,1,12,0,30,16,0,35,0,21,7,0,55,17,21,1,22,21,0,1,17,22,0,37,11,14,21,0,37,0,10,21,0,36,17,0,1,22,0,4,13,14,0,55,0,16,21,0,4,17,22,0,38,11,14,0,53,0,14,21,0,4,17,0,25,0,49,17,0,10,0,49,0,16,21,0,4,17,17,22,0,39,11,14,21,0,39,0,29,21,0,36,0,25,0,57,17,0,2,0,44,0,13,0,42,0,24,8,8,16,0,41,0,6,7,16,17,22,0,40,11,14,21,0,39,0,25,0,49,17,0,9,21,1,12,0,30,16,0,0,0,49,17,0,14,21,0,1,17,17,0,11,21,0,40,17,22,0,41,11,14,0,53,0,14,21,0,4,17,0,25,0,49,17,0,11,21,0,37,17,0,10,21,0,38,17,22,0,42,11,14,21,0,41,0,10,21,0,42,17,0,8,16,0,25,16,0,2,0,42,0,41,0,6,7,8,0,1,0,17,19,0,44,0,13,0,42,0,24,8,8,16,0,25,16,22,0,43,11,14,21,0,37,0,26,16,21,0,43,0,45,0,29,8,0,0,0,49,19,0,0,0,18,19,16,22,0,44,11,14,0,49,0,1,21,0,44,17,0,32,21,0,1,0,13,16,0,24,16,17,0,18,0,20,0,50,19,0,22,0,13,19,0,45,0,1,8,16,0,29,21,0,34,17,0,41,0,0,7,16,0,25,0,57,17,22,0,45,11,0,29,21,0,6,17,22,0,46,11,14,21,0,4,0,26,0,44,21,0,46,8,0,46,0,37,0,57,7,8,16,22,0,4,12,14,21,0,42,0,8,16,0,41,0,0,7,0,2,0,42,0,41,0,6,7,8,0,1,0,18,19,21,0,36,19,0,15,0,11,0,7,19,0,55,19,0,9,0,18,19,16,0,9,21,0,36,0,2,0,44,0,13,0,42,0,24,8,0,0,0,49,19,8,0,41,0,6,7,9,0,43,0,15,8,21,0,37,17,17,22,0,47,11,14,21,0,37,0,10,21,0,36,17,0,35,0,20,7,0,50,17,0,23,0,49,17,0,12,21,0,38,17,22,0,48,11,14,21,0,48,0,26,16,0,25,16,22,0,49,11,14,21,0,48,0,25,0,57,17,0,11,21,0,38,17,0,10,0,49,0,14,21,0,4,17,17,0,11,21,0,48,0,25,0,49,17,0,9,21,0,42,17,17,0,9,21,0,40,0,8,16,0,10,21,0,47,17,17,0,11,21,0,46,0,25,0,49,17,17,0,26,16,22,0,50,11,14,0,50,0,14,21,0,4,17,0,11,21,0,42,17,0,10,0,50,0,16,21,0,4,17,0,9,21,0,40,17,17,0,9,21,1,15,0,30,16,0,13,21,0,1,17,17,0,35,0,20,7,0,50,17,0,23,0,49,17,0,29,21,0,50,17,22,0,51,11,14,21,0,3,0,0,21,1,23,17,0,16,21,0,1,17,22,0,52,11,14,21,1,10,0,40,0,0,7,16,0,0,0,57,17,0,15,21,0,1,17,0,10,21,0,52,17,0,26,16,22,0,53,11,14,21,0,1,0,29,21,0,53,17,22,0,54,11,0,33,16,0,9,16,22,0,55,11,14,21,1,13,0,30,16,0,0,0,51,17,0,14,21,0,1,0,26,21,0,11,17,17,22,0,56,11,14,0,49,0,20,21,0,36,17,0,9,21,0,11,0,20,0,49,17,17,0,1,0,50,0,20,21,0,35,17,17,0,41,0,0,7,16,0,26,0,49,0,20,21,0,11,17,17,0,23,0,44,0,1,8,0,1,0,23,19,0,49,17,0,26,21,0,56,17,0,0,0,49,17,22,0,57,11,14,21,0,56,0,20,0,50,17,0,29,0,44,0,41,0,0,7,8,21,0,11,17,0,12,21,0,35,17,0,26,16,22,0,58,11,14,21,1,13,0,30,16,0,0,0,55,17,0,14,21,0,1,17,0,26,16,22,0,59,11,14,21,0,45,0,9,21,0,28,17,0,9,21,0,24,17,22,0,60,11,0,29,21,0,25,17,22,0,61,11,14,21,0,60,21,0,19,16,22,0,62,11,14,21,0,18,0,29,21,0,25,17,0,35,21,0,14,0,29,21,0,16,17,0,20,21,0,1,0,13,16,17,7,0,29,0,26,0,44,21,0,61,8,19,0,20,21,0,14,0,26,21,0,17,17,0,20,0,57,17,0,45,0,29,8,19,16,0,27,16,22,0,63,11,14,21,0,63,0,29,0,44,21,0,26,0,26,0,44,21,0,61,8,0,45,0,20,8,16,0,45,0,29,8,0,27,9,8,16,0,29,0,44,21,0,61,0,35,0,26,7,16,0,1,16,0,20,21,0,61,17,0,45,0,29,0,42,0,41,0,0,7,8,8,0,27,9,8,16,0,26,0,44,21,0,25,0,13,16,0,45,0,11,8,8,16,22,0,63,12,14,21,0,25,0,29,0,44,21,0,63,8,0,46,0,29,0,44,0,2,0,44,0,13,0,42,0,24,8,8,0,41,0,6,7,9,8,8,21,0,61,17,22,0,64,11,14,21,0,23,0,29,21,0,27,17,0,0,0,55,17,0,15,0,44,0,50,8,0,45,0,0,8,16,0,0,21,0,21,0,7,0,55,17,0,2,0,53,17,0,29,21,0,18,0,29,21,0,27,17,17,17,0,20,21,0,60,0,41,0,0,7,16,0,8,0,44,0,2,0,44,21,0,17,8,0,41,0,6,7,9,8,16,0,1,21,0,22,0,29,21,0,18,17,17,0,29,21,0,64,17,17,22,0,65,11,14,21,0,27,0,20,21,0,25,17,22,0,66,11,0,11,16,0,19,0,53,17,0,20,16,22,0,67,11,14,21,0,45,0,29,21,0,66,17,0,0,0,62,17,21,0,27,0,37,0,50,7,16,0,20,21,0,64,21,0,13,0,45,0,29,8,0,43,0,1,8,21,0,25,17,17,21,0,65,3,3,22,0,68,11,14,21,0,34,0,29,22,0,16,13,14,21,0,53,21,0,53,21,0,16,21,0,16,21,0,59,21,0,58,21,0,31,21,0,31,21,0,33,21,0,33,21,0,44,21,0,43,0,29,21,0,49,17,0,6,0,49,17,0,0,21,0,49,17,21,0,51,0,0,21,0,50,17,0,0,0,44,21,0,43,0,45,0,29,8,0,2,21,0,51,19,8,16,3,13,0,20,16,0,35,0,29,7,21,0,6,17,0,20,21,0,67,17,0,27,16,22,0,69,11,14,21,0,53,0,37,0,50,7,16,21,0,54,0,31,21,0,55,17,21,0,16,0,37,0,63,7,16,21,0,16,0,13,16,0,24,16,0,0,0,49,17,3,4,0,20,21,0,68,17,0,20,16,22,0,70,11,14,21,0,59,0,37,0,64,7,16,21,0,58,0,37,0,65,7,16,21,0,46,0,29,21,0,31,17,0,0,0,53,17,21,0,57,21,0,46,0,29,21,0,33,17,0,0,0,53,17,21,0,30,21,0,1,0,0,21,0,41,17,0,26,21,0,37,17,0,0,21,1,12,0,30,16,0,1,0,66,17,17,21,0,4,0,29,21,0,49,17,0,0,0,54,17,21,0,40,0,29,21,0,50,17,0,2,0,68,17,0,1,21,0,51,17,0,0,0,67,17,0,14,0,44,0,58,8,0,2,0,52,19,0,0,0,18,19,16,3,9,0,20,16,0,20,21,0,70,17,0,29,21,0,69,17,22,0,71,11,14,21,0,22,0,0,21,0,62,17,0,37,0,11,0,43,0,21,8,7,21,0,59,0,13,0,43,0,24,0,45,0,0,8,8,21,0,70,17,0,32,21,0,69,17,0,20,0,49,17,0,26,16,0,35,0,29,7,21,0,71,0,6,0,49,17,0,39,0,4,7,0,61,17,0,5,16,0,0,0,49,17,0,20,0,50,17,0,41,0,0,7,16,17,17,0,37,0,20,7,0,55,0,24,0,43,0,25,0,45,0,38,0,21,7,8,8,0,53,17,0,19,16,0,29,21,0,21,17,17,22,0,72,11,14,0,64,0,20,21,0,71,17,21,1,29,16,21,0,55,21,0,72,3,3,25,21,0,1,21,1,26,16,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,0,3,21,1,30,21,0,5,21,0,4,3,2,17,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,6,0,37,21,1,28,7,16,0,20,21,0,2,17,0,29,21,1,23,0,16,21,0,8,17,0,2,21,0,2,0,13,16,0,1,21,0,5,17,0,0,21,1,23,17,17,0,1,21,0,8,17,17,22,0,10,11,14,21,0,7,21,0,10,21,0,9,3,3,25,21,0,1,0,25,16,0,30,16,0,14,0,50,17,25,21,0,1,0,29,0,44,21,0,2,0,26,21,0,1,17,8,0,46,0,37,0,49,7,8,16,21,1,9,21,0,2,0,35,0,29,7,16,17,25,21,0,2,0,2,16,22,0,3,11,14,21,0,1,21,0,3,0,40,0,10,7,16,0,48,0,26,0,44,21,0,3,8,0,43,21,1,3,0,45,0,3,8,0,5,9,0,45,21,0,0,8,8,0,20,0,7,0,0,21,0,3,0,45,0,2,8,19,0,44,21,1,3,8,19,8,0,49,0,1,21,0,2,17,17,25])
,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[30],runtime[31],runtime[32],runtime[33],runtime[34],runtime[35],runtime[37],runtime[38],runtime[39],runtime[41],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[55],runtime[58],1,0,4,9,3,5,2,6,-1,10,3.14159265358979,Infinity,128,21,15,25,14,11,16,7,'\t','\n',str("0123456789"),str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),str("abcdefghijklmnopqrstuvwxyz"),str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!"),str("˜˘¨⌜⁼´˝`"),str("∘○⊸⟜⌾⊘◶⎉⚇⍟"),str("⋄,"),str("←↩→"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),str("¯.π∞"),str("_"),str(" "),'#','\'','"',str("'")]
,[[0,1,0,32],[1,1,440,3],[0,0,483,30],[0,0,1651,13],[0,0,1973,6],[0,0,2079,73],[0,0,5113,11],[0,0,5236,3],[0,0,5251,3],[0,0,5291,4]]
)
let bqn = src => run.apply(null,compile(str(src),runtime));
if(typeof module!=='undefined'){module.exports=bqn;}
|