active
f
0
mark
cons
0
f
s
0
active
f
s
0
mark
f
p
s
0
active
p
s
0
mark
0
active
f
X
f
active
X
active
cons
X1
X2
cons
active
X1
X2
active
s
X
s
active
X
active
p
X
p
active
X
f
mark
X
mark
f
X
cons
mark
X1
X2
mark
cons
X1
X2
s
mark
X
mark
s
X
p
mark
X
mark
p
X
proper
f
X
f
proper
X
proper
0
ok
0
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
s
X
s
proper
X
proper
p
X
p
proper
X
f
ok
X
ok
f
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
s
ok
X
ok
s
X
p
ok
X
ok
p
X
top
mark
X
top
proper
X
top
ok
X
top
active
X
2.2
active
f
s
0
p
s
0
f
mark
X
f
X
p
mark
X
p
X
active
p
X
p
active
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
cons
X1
X2
proper
X2
proper
p
X
p
proper
X
top
mark
X
proper
X
p
ok
X
p
X
proper
s
X
proper
X
active
p
X
active
X
proper
s
X
s
proper
X
proper
p
X
proper
X
f
ok
X
f
X
proper
f
X
f
proper
X
proper
cons
X1
X2
proper
X1
active
f
X
active
X
cons
mark
X1
X2
cons
X1
X2
active
f
0
s
0
top
mark
X
top
proper
X
cons
ok
X1
ok
X2
cons
X1
X2
active
f
0
f
s
0
active
cons
X1
X2
active
X1
active
f
X
f
active
X
top
ok
X
active
X
active
f
0
cons
0
f
s
0
s
ok
X
s
X
active
cons
X1
X2
cons
active
X1
X2
active
s
X
s
active
X
active
f
s
0
f
p
s
0
proper
f
X
proper
X
s
mark
X
s
X
active
s
X
active
X
top
ok
X
top
active
X
true
top
ok
X
top
active
X
top
mark
X
top
proper
X
true
2
1
cons
2
0
0
s
1
1
59941
1
top
1
0
0
top
1
1
1
0
0
1
0
0
p
1
0
0
f
1
1
1
0
1
1
139794
0
p
1
0
0
1
1
1
38175
1
proper
1
1
0
0
ok
1
1
0
0
0
0
0
21763
s
1
0
0
mark
1
1
1
1
f
1
0
0
proper
1
0
0
active
1
1
0
0
cons
2
0
1
1
0
1
0
0
1
0
2
36325
1
active
1
0
0
top
ok
X
top
active
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
top
ok
X
top
active
X
true
cons
2
0
s
1
1
0
top
1
0
top
1
1
0
p
1
0
f
1
1
0
p
1
1
0
proper
1
1
1
ok
1
2
0
0
1
s
1
0
mark
1
1
f
1
0
proper
1
0
active
1
1
cons
2
1
0
active
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
top
ok
X
active
X
false
top
mark
X
proper
X
false
active
s
X
active
X
active
p
X
active
X
active
cons
X1
X2
active
X1
active
f
X
active
X
true
cons
2
0
s
1
1
1
top
1
0
top
1
1
0
p
1
0
f
1
1
1
p
1
1
1
proper
1
1
29824
ok
1
29825
0
0
1
s
1
0
mark
1
3
f
1
0
proper
1
0
active
1
1
1
cons
2
1
3153
active
1
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
active
f
s
0
f
p
s
0
false
active
s
X
s
active
X
false
active
p
X
p
active
X
false
active
cons
X1
X2
cons
active
X1
X2
false
active
f
0
cons
0
f
s
0
false
active
f
0
f
s
0
false
active
f
0
s
0
false
active
f
X
f
active
X
false
proper
p
X
proper
X
proper
s
X
proper
X
proper
f
X
proper
X
proper
cons
X1
X2
proper
X2
proper
cons
X1
X2
proper
X1
true
cons
2
0
s
1
1
1
top
1
0
top
1
1
0
p
1
0
f
1
1
1
p
1
1
1
proper
1
1
0
ok
1
1
0
0
1
s
1
0
mark
1
1
f
1
0
proper
1
1
0
active
1
1
31961
cons
2
1
2
3153
active
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
proper
cons
X1
X2
cons
proper
X1
proper
X2
false
cons
ok
X1
ok
X2
cons
X1
X2
cons
mark
X1
X2
cons
X1
X2
true
cons
2
1
0
s
1
1
1
top
1
0
top
1
1
0
p
1
0
f
1
1
1
p
1
1
1
proper
1
1
1
ok
1
1
1
0
0
1
s
1
0
mark
1
1
1
f
1
0
proper
1
0
active
1
1
2
cons
2
1
1
active
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
proper
p
X
p
proper
X
false
p
ok
X
p
X
p
mark
X
p
X
true
cons
2
0
s
1
1
1
top
1
0
top
1
1
0
p
1
1
0
f
1
1
1
p
1
1
1
proper
1
1
45671
ok
1
1
1
0
0
1
s
1
0
mark
1
1
1
f
1
0
proper
1
0
active
1
1
2
cons
2
1
1
active
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
proper
s
X
s
proper
X
false
s
mark
X
s
X
s
ok
X
s
X
true
cons
2
0
s
1
1
1
top
1
0
top
1
1
0
p
1
0
f
1
1
1
p
1
1
1
proper
1
1
1
ok
1
1
1
0
0
1
s
1
1
0
mark
1
1
1
f
1
0
proper
1
0
active
1
1
2
cons
2
1
1
active
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
proper
f
X
f
proper
X
false
active
f
s
0
p
s
0
false
f
mark
X
f
X
f
ok
X
f
X
true
cons
2
0
s
1
1
1
top
1
0
top
1
1
0
p
1
0
f
1
1
1
p
1
1
1
proper
1
1
13466
ok
1
1
1
0
0
1
s
1
0
mark
1
1
1
f
1
1
0
proper
1
0
active
1
1
2
cons
2
1
2
active
1
0
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
f
X
f
active
X
proper
s
X
s
proper
X
f
mark
X
mark
f
X
active
f
0
mark
cons
0
f
s
0
active
p
s
0
mark
0
proper
p
X
p
proper
X
s
ok
X
ok
s
X
f
ok
X
ok
f
X
active
cons
X1
X2
cons
active
X1
X2
s
mark
X
mark
s
X
active
p
X
p
active
X
p
ok
X
ok
p
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
f
X
f
proper
X
p
mark
X
mark
p
X
cons
mark
X1
X2
mark
cons
X1
X2
proper
0
ok
0
active
s
X
s
active
X
active
f
s
0
mark
f
p
s
0
NaTT
certifiable-1.6