active
from
X
mark
cons
X
from
s
X
active
length
nil
mark
0
active
length
cons
X
Y
mark
s
length1
Y
active
length1
X
mark
length
X
active
from
X
from
active
X
active
cons
X1
X2
cons
active
X1
X2
active
s
X
s
active
X
from
mark
X
mark
from
X
cons
mark
X1
X2
mark
cons
X1
X2
s
mark
X
mark
s
X
proper
from
X
from
proper
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
s
X
s
proper
X
proper
length
X
length
proper
X
proper
nil
ok
nil
proper
0
ok
0
proper
length1
X
length1
proper
X
from
ok
X
ok
from
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
s
ok
X
ok
s
X
length
ok
X
ok
length
X
length1
ok
X
ok
length1
X
top
mark
X
top
proper
X
top
ok
X
top
active
X
2.2
active
cons
X1
X2
active
X1
active
length
cons
X
Y
length1
Y
from
ok
X
from
X
proper
from
X
from
proper
X
proper
cons
X1
X2
proper
X1
top
ok
X
active
X
top
mark
X
proper
X
proper
length1
X
length1
proper
X
length1
ok
X
length1
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
active
from
X
from
s
X
proper
cons
X1
X2
proper
X2
active
from
X
cons
X
from
s
X
proper
length1
X
proper
X
s
mark
X
s
X
proper
from
X
proper
X
top
mark
X
top
proper
X
from
mark
X
from
X
cons
mark
X1
X2
cons
X1
X2
active
length
cons
X
Y
s
length1
Y
active
from
X
active
X
active
length1
X
length
X
length
ok
X
length
X
s
ok
X
s
X
active
from
X
s
X
active
s
X
active
X
cons
ok
X1
ok
X2
cons
X1
X2
active
from
X
from
active
X
proper
length
X
proper
X
proper
s
X
s
proper
X
active
cons
X1
X2
cons
active
X1
X2
top
ok
X
top
active
X
proper
length
X
length
proper
X
proper
s
X
proper
X
active
s
X
s
active
X
true
top
ok
X
top
active
X
top
mark
X
top
proper
X
true
2
1
cons
2
0
0
s
1
0
0
1
1
1
1
16374
length1
1
0
0
top
1
0
0
length1
1
1
1
0
0
1
19750
21675
top
1
0
0
1
0
1
0
0
proper
1
1
21674
21674
ok
1
1
21674
21674
0
0
1
1
from
1
1
29206
79801
s
1
0
0
nil
0
21674
20933
mark
1
0
0
0
1
1
2
21675
proper
1
0
0
from
1
0
0
active
1
1
1
1
cons
2
0
0
0
1
1
1
0
0
0
2
59722
58127
active
1
0
0
length
1
0
1
1
0
1
1
1
length
1
0
0
from
ok
X
ok
from
X
active
length1
X
mark
length
X
proper
nil
ok
nil
from
mark
X
mark
from
X
active
from
X
mark
cons
X
from
s
X
active
length
cons
X
Y
mark
s
length1
Y
proper
0
ok
0
length
ok
X
ok
length
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
proper
length1
X
length1
proper
X
length1
ok
X
ok
length1
X
active
from
X
from
active
X
s
mark
X
mark
s
X
active
s
X
s
active
X
s
ok
X
ok
s
X
proper
length
X
length
proper
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
from
X
from
proper
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
s
X
s
proper
X
active
cons
X1
X2
cons
active
X1
X2
active
length
nil
mark
0
top
ok
X
active
X
false
top
mark
X
proper
X
false
proper
length1
X
proper
X
proper
s
X
proper
X
proper
cons
X1
X2
proper
X2
proper
length
X
proper
X
proper
cons
X1
X2
proper
X1
proper
from
X
proper
X
true
cons
2
0
s
1
1
1
length1
1
0
top
1
0
length1
1
1
16704
top
1
0
proper
1
33265
ok
1
33266
0
0
1
from
1
1
28872
s
1
0
nil
0
19095
mark
1
46797
proper
1
1
0
from
1
0
active
1
44049
cons
2
1
2
2
active
1
0
length
1
1
1
length
1
0
proper
s
X
s
proper
X
false
proper
from
X
from
proper
X
false
proper
cons
X1
X2
cons
proper
X1
proper
X2
false
proper
length
X
length
proper
X
false
proper
length1
X
length1
proper
X
false
active
s
X
active
X
active
from
X
active
X
active
cons
X1
X2
active
X1
true
cons
2
0
s
1
1
1
length1
1
0
top
1
0
length1
1
1
27691
top
1
0
proper
1
1
ok
1
33266
0
0
1
from
1
1
28872
s
1
0
nil
0
240
mark
1
2
proper
1
0
from
1
0
active
1
1
cons
2
1
2
2
active
1
1
0
length
1
1
1
length
1
0
active
cons
X1
X2
cons
active
X1
X2
false
active
s
X
s
active
X
false
active
from
X
from
active
X
false
active
length
cons
X
Y
s
length1
Y
false
active
length
cons
X
Y
length1
Y
false
length1
ok
X
length1
X
true
cons
2
0
s
1
1
1
length1
1
1
0
top
1
0
length1
1
1
1
top
1
0
proper
1
1
ok
1
1
2
0
0
34495
from
1
1
21394
s
1
0
nil
0
0
mark
1
34661
proper
1
0
from
1
0
active
1
18640
cons
2
1
2
1
active
1
0
length
1
1
26608
length
1
0
active
from
X
cons
X
from
s
X
false
cons
ok
X1
ok
X2
cons
X1
X2
cons
mark
X1
X2
cons
X1
X2
true
cons
2
2
0
s
1
1
1
length1
1
0
top
1
0
length1
1
1
1
top
1
0
proper
1
1
ok
1
1
2
0
0
36560
from
1
1
56977
s
1
0
nil
0
0
mark
1
2
proper
1
0
from
1
0
active
1
1
cons
2
1
2
36337
active
1
0
length
1
1
15620
length
1
0
cons
mark
X1
X2
cons
X1
X2
cons
mark
X1
X2
cons
X1
X2
true
cons
2
1
0
s
1
1
0
length1
1
0
top
1
0
length1
1
1
0
top
1
0
proper
1
1
ok
1
1
2
0
0
0
from
1
1
1
s
1
0
nil
0
45672
mark
1
1
2
proper
1
0
from
1
0
active
1
1
cons
2
1
2
1
active
1
0
length
1
1
0
length
1
0
active
from
X
from
s
X
false
from
mark
X
from
X
from
ok
X
from
X
true
cons
2
0
s
1
1
0
length1
1
0
top
1
0
length1
1
1
0
top
1
0
proper
1
1
ok
1
1
2
0
0
0
from
1
1
17525
s
1
0
nil
0
29109
mark
1
1
15048
proper
1
0
from
1
1
0
active
1
1
cons
2
1
2
1
active
1
0
length
1
1
0
length
1
0
active
from
X
s
X
false
active
length1
X
length
X
false
length
ok
X
length
X
true
cons
2
0
s
1
1
0
length1
1
0
top
1
0
length1
1
1
0
top
1
0
proper
1
1
ok
1
1
2
0
0
0
from
1
1
32135
s
1
0
nil
0
1
mark
1
1
48064
proper
1
0
from
1
0
active
1
33017
cons
2
1
2
1
active
1
0
length
1
1
0
length
1
1
0
s
ok
X
s
X
s
mark
X
s
X
true
cons
2
0
s
1
1
0
length1
1
0
top
1
0
length1
1
1
0
top
1
0
proper
1
1
ok
1
1
2
0
0
0
from
1
1
26815
s
1
1
0
nil
0
1
mark
1
1
15048
proper
1
0
from
1
0
active
1
1
cons
2
1
2
1
active
1
0
length
1
1
0
length
1
0
NaTT
certifiable-1.6