active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
0
X
mark
X
active
add
s
X
Y
mark
s
add
X
Y
active
prod
0
X
mark
0
active
prod
s
X
Y
mark
add
Y
prod
X
Y
active
if
true
X
Y
mark
X
active
if
false
X
Y
mark
Y
active
zero
0
mark
true
active
zero
s
X
mark
false
active
p
s
X
mark
X
mark
fact
X
active
fact
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
zero
X
active
zero
mark
X
mark
s
X
active
s
mark
X
mark
0
active
0
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
p
X
active
p
mark
X
mark
add
X1
X2
active
add
mark
X1
mark
X2
mark
true
active
true
mark
false
active
false
fact
mark
X
fact
X
fact
active
X
fact
X
if
mark
X1
X2
X3
if
X1
X2
X3
if
X1
mark
X2
X3
if
X1
X2
X3
if
X1
X2
mark
X3
if
X1
X2
X3
if
active
X1
X2
X3
if
X1
X2
X3
if
X1
active
X2
X3
if
X1
X2
X3
if
X1
X2
active
X3
if
X1
X2
X3
zero
mark
X
zero
X
zero
active
X
zero
X
s
mark
X
s
X
s
active
X
s
X
prod
mark
X1
X2
prod
X1
X2
prod
X1
mark
X2
prod
X1
X2
prod
active
X1
X2
prod
X1
X2
prod
X1
active
X2
prod
X1
X2
p
mark
X
p
X
p
active
X
p
X
add
mark
X1
X2
add
X1
X2
add
X1
mark
X2
add
X1
X2
add
active
X1
X2
add
X1
X2
add
X1
active
X2
add
X1
X2
2.2
zero
mark
X
zero
X
s
active
X
s
X
active
if
false
X
Y
mark
Y
active
prod
s
X
Y
prod
X
Y
mark
add
X1
X2
add
mark
X1
mark
X2
prod
X1
active
X2
prod
X1
X2
mark
p
X
mark
X
mark
p
X
p
mark
X
fact
active
X
fact
X
fact
mark
X
fact
X
active
add
s
X
Y
s
add
X
Y
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
active
fact
X
s
0
active
fact
X
p
X
prod
X1
mark
X2
prod
X1
X2
p
mark
X
p
X
active
fact
X
prod
X
fact
p
X
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
mark
add
X1
X2
mark
X1
mark
p
X
active
p
mark
X
mark
prod
X1
X2
mark
X2
active
zero
s
X
mark
false
add
X1
mark
X2
add
X1
X2
mark
zero
X
zero
mark
X
active
fact
X
zero
X
mark
s
X
s
mark
X
mark
s
X
active
s
mark
X
if
active
X1
X2
X3
if
X1
X2
X3
mark
zero
X
mark
X
active
p
s
X
mark
X
active
fact
X
if
zero
X
s
0
prod
X
fact
p
X
mark
fact
X
active
fact
mark
X
active
zero
0
mark
true
add
mark
X1
X2
add
X1
X2
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
prod
mark
X1
mark
X2
mark
s
X
mark
X
mark
if
X1
X2
X3
if
mark
X1
X2
X3
p
active
X
p
X
if
X1
active
X2
X3
if
X1
X2
X3
mark
zero
X
active
zero
mark
X
active
prod
0
X
mark
0
active
prod
s
X
Y
mark
add
Y
prod
X
Y
add
active
X1
X2
add
X1
X2
mark
true
active
true
mark
add
X1
X2
active
add
mark
X1
mark
X2
mark
false
active
false
s
mark
X
s
X
active
prod
s
X
Y
add
Y
prod
X
Y
if
X1
X2
mark
X3
if
X1
X2
X3
active
fact
X
fact
p
X
if
X1
mark
X2
X3
if
X1
X2
X3
prod
mark
X1
X2
prod
X1
X2
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
0
active
0
zero
active
X
zero
X
mark
add
X1
X2
mark
X2
if
X1
X2
active
X3
if
X1
X2
X3
mark
if
X1
X2
X3
mark
X1
mark
fact
X
mark
X
prod
active
X1
X2
prod
X1
X2
active
add
0
X
mark
X
active
add
s
X
Y
add
X
Y
active
if
true
X
Y
mark
X
mark
fact
X
fact
mark
X
add
X1
active
X2
add
X1
X2
mark
prod
X1
X2
mark
X1
if
mark
X1
X2
X3
if
X1
X2
X3
true
mark
prod
X1
X2
mark
X1
mark
s
X
mark
X
active
add
s
X
Y
mark
s
add
X
Y
mark
fact
X
active
fact
mark
X
active
p
s
X
mark
X
mark
zero
X
mark
X
active
if
true
X
Y
mark
X
active
add
0
X
mark
X
mark
s
X
active
s
mark
X
mark
fact
X
mark
X
mark
if
X1
X2
X3
mark
X1
mark
add
X1
X2
mark
X2
mark
prod
X1
X2
mark
X2
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
p
X
active
p
mark
X
mark
add
X1
X2
mark
X1
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
prod
s
X
Y
mark
add
Y
prod
X
Y
mark
p
X
mark
X
mark
zero
X
active
zero
mark
X
active
if
false
X
Y
mark
Y
true
zero
1
1
prod
2
20539
s
1
1
prod
2
0
false
0
1
fact
1
0
p
1
0
true
0
1
p
1
20539
mark
1
20539
if
3
20539
0
0
1
s
1
0
fact
1
20539
mark
1
1
active
1
1
if
3
0
active
1
1
0
add
2
0
add
2
20539
zero
1
0
active
if
false
X
Y
mark
Y
mark
p
X
mark
X
active
prod
s
X
Y
mark
add
Y
prod
X
Y
mark
add
X1
X2
active
add
mark
X1
mark
X2
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
mark
add
X1
X2
mark
X1
mark
p
X
active
p
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
prod
X1
X2
mark
X2
mark
add
X1
X2
mark
X2
mark
if
X1
X2
X3
mark
X1
mark
fact
X
mark
X
active
add
0
X
mark
X
active
if
true
X
Y
mark
X
mark
zero
X
mark
X
active
p
s
X
mark
X
mark
fact
X
active
fact
mark
X
active
add
s
X
Y
mark
s
add
X
Y
mark
s
X
mark
X
mark
prod
X1
X2
mark
X1
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
prod
0
X
mark
0
mark
0
active
0
active
zero
0
mark
true
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
fact
mark
X
fact
X
prod
X1
active
X2
prod
X1
X2
if
active
X1
X2
X3
if
X1
X2
X3
mark
true
active
true
s
active
X
s
X
mark
p
X
active
p
mark
X
if
X1
active
X2
X3
if
X1
X2
X3
prod
X1
mark
X2
prod
X1
X2
fact
active
X
fact
X
if
X1
X2
active
X3
if
X1
X2
X3
active
prod
s
X
Y
mark
add
Y
prod
X
Y
prod
mark
X1
X2
prod
X1
X2
active
p
s
X
mark
X
add
mark
X1
X2
add
X1
X2
active
if
false
X
Y
mark
Y
mark
false
active
false
if
X1
X2
mark
X3
if
X1
X2
X3
zero
active
X
zero
X
mark
s
X
active
s
mark
X
s
mark
X
s
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
if
mark
X1
X2
X3
if
X1
X2
X3
if
X1
mark
X2
X3
if
X1
X2
X3
mark
fact
X
active
fact
mark
X
active
zero
s
X
mark
false
mark
zero
X
active
zero
mark
X
add
X1
mark
X2
add
X1
X2
active
if
true
X
Y
mark
X
p
active
X
p
X
p
mark
X
p
X
add
active
X1
X2
add
X1
X2
add
X1
active
X2
add
X1
X2
prod
active
X1
X2
prod
X1
X2
zero
mark
X
zero
X
active
add
0
X
mark
X
mark
add
X1
X2
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
mark
X2
mark
prod
X1
X2
mark
X1
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
p
X
mark
X
mark
p
X
active
p
mark
X
active
prod
s
X
Y
mark
add
Y
prod
X
Y
active
p
s
X
mark
X
active
if
false
X
Y
mark
Y
mark
s
X
mark
X
mark
if
X1
X2
X3
mark
X1
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
fact
X
mark
X
mark
fact
X
active
fact
mark
X
mark
zero
X
mark
X
active
if
true
X
Y
mark
X
active
add
0
X
mark
X
true
zero
1
1
1
prod
2
1
1
2
0
0
s
1
1
0
prod
2
0
false
0
1
fact
1
0
p
1
0
true
0
1
p
1
1
0
mark
1
1
0
if
3
1
2
2
1
3
0
0
0
0
1
s
1
0
fact
1
1
4
mark
1
1
0
active
1
1
0
if
3
0
active
1
1
0
add
2
0
add
2
1
0
2
0
0
zero
1
0
active
add
0
X
mark
X
mark
fact
X
active
fact
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
s
X
mark
X
active
if
false
X
Y
mark
Y
active
p
s
X
mark
X
active
prod
s
X
Y
mark
add
Y
prod
X
Y
mark
p
X
active
p
mark
X
mark
p
X
mark
X
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
prod
X1
X2
mark
X2
active
add
s
X
Y
mark
s
add
X
Y
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
mark
add
X1
X2
active
add
mark
X1
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
mark
X2
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
prod
0
X
mark
0
mark
0
active
0
active
zero
0
mark
true
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
fact
mark
X
fact
X
prod
X1
active
X2
prod
X1
X2
if
active
X1
X2
X3
if
X1
X2
X3
mark
true
active
true
s
active
X
s
X
mark
p
X
active
p
mark
X
if
X1
active
X2
X3
if
X1
X2
X3
prod
X1
mark
X2
prod
X1
X2
fact
active
X
fact
X
if
X1
X2
active
X3
if
X1
X2
X3
active
prod
s
X
Y
mark
add
Y
prod
X
Y
prod
mark
X1
X2
prod
X1
X2
active
p
s
X
mark
X
add
mark
X1
X2
add
X1
X2
active
if
false
X
Y
mark
Y
mark
false
active
false
if
X1
X2
mark
X3
if
X1
X2
X3
zero
active
X
zero
X
mark
s
X
active
s
mark
X
s
mark
X
s
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
if
mark
X1
X2
X3
if
X1
X2
X3
if
X1
mark
X2
X3
if
X1
X2
X3
mark
fact
X
active
fact
mark
X
active
zero
s
X
mark
false
mark
zero
X
active
zero
mark
X
add
X1
mark
X2
add
X1
X2
active
if
true
X
Y
mark
X
p
active
X
p
X
p
mark
X
p
X
add
active
X1
X2
add
X1
X2
add
X1
active
X2
add
X1
X2
prod
active
X1
X2
prod
X1
X2
zero
mark
X
zero
X
active
add
0
X
mark
X
mark
add
X1
X2
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
mark
X2
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
p
X
mark
X
mark
p
X
active
p
mark
X
active
prod
s
X
Y
mark
add
Y
prod
X
Y
active
p
s
X
mark
X
active
if
false
X
Y
mark
Y
mark
s
X
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
fact
X
active
fact
mark
X
active
add
0
X
mark
X
true
zero
1
1
1
prod
2
2
0
0
s
1
1
0
prod
2
0
false
0
1
fact
1
0
p
1
0
true
0
1
p
1
1
1
mark
1
1
0
if
3
2
1
3
0
0
0
0
0
s
1
0
fact
1
2
mark
1
1
0
active
1
1
0
if
3
0
active
1
1
0
add
2
0
add
2
1
0
2
0
0
zero
1
0
active
add
0
X
mark
X
mark
fact
X
active
fact
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
s
X
mark
X
active
if
false
X
Y
mark
Y
active
prod
s
X
Y
mark
add
Y
prod
X
Y
mark
p
X
active
p
mark
X
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
prod
X1
X2
mark
X2
active
add
s
X
Y
mark
s
add
X
Y
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
mark
add
X1
X2
active
add
mark
X1
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
mark
X2
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
prod
0
X
mark
0
mark
0
active
0
active
zero
0
mark
true
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
fact
mark
X
fact
X
prod
X1
active
X2
prod
X1
X2
if
active
X1
X2
X3
if
X1
X2
X3
mark
true
active
true
s
active
X
s
X
mark
p
X
active
p
mark
X
if
X1
active
X2
X3
if
X1
X2
X3
prod
X1
mark
X2
prod
X1
X2
fact
active
X
fact
X
if
X1
X2
active
X3
if
X1
X2
X3
active
prod
s
X
Y
mark
add
Y
prod
X
Y
prod
mark
X1
X2
prod
X1
X2
active
p
s
X
mark
X
add
mark
X1
X2
add
X1
X2
active
if
false
X
Y
mark
Y
mark
false
active
false
if
X1
X2
mark
X3
if
X1
X2
X3
zero
active
X
zero
X
mark
s
X
active
s
mark
X
s
mark
X
s
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
if
mark
X1
X2
X3
if
X1
X2
X3
if
X1
mark
X2
X3
if
X1
X2
X3
mark
fact
X
active
fact
mark
X
active
zero
s
X
mark
false
mark
zero
X
active
zero
mark
X
add
X1
mark
X2
add
X1
X2
active
if
true
X
Y
mark
X
p
active
X
p
X
p
mark
X
p
X
add
active
X1
X2
add
X1
X2
add
X1
active
X2
add
X1
X2
prod
active
X1
X2
prod
X1
X2
zero
mark
X
zero
X
active
add
0
X
mark
X
mark
add
X1
X2
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
mark
X2
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
p
X
active
p
mark
X
active
prod
s
X
Y
mark
add
Y
prod
X
Y
active
if
false
X
Y
mark
Y
mark
s
X
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
fact
X
active
fact
mark
X
active
add
0
X
mark
X
true
zero
1
1
prod
2
842
s
1
0
prod
2
0
false
0
1
fact
1
0
p
1
0
true
0
1
p
1
1
mark
1
842
if
3
842
0
0
1
s
1
0
fact
1
842
mark
1
2
active
1
1
if
3
0
active
1
1
0
add
2
0
add
2
842
zero
1
0
active
add
0
X
mark
X
mark
fact
X
active
fact
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
s
X
mark
X
active
if
false
X
Y
mark
Y
active
prod
s
X
Y
mark
add
Y
prod
X
Y
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
mark
prod
X1
X2
mark
X2
active
add
s
X
Y
mark
s
add
X
Y
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
mark
add
X1
X2
active
add
mark
X1
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
mark
X2
fact
mark
X
fact
X
prod
X1
active
X2
prod
X1
X2
if
active
X1
X2
X3
if
X1
X2
X3
s
active
X
s
X
if
X1
active
X2
X3
if
X1
X2
X3
prod
X1
mark
X2
prod
X1
X2
fact
active
X
fact
X
if
X1
X2
active
X3
if
X1
X2
X3
prod
mark
X1
X2
prod
X1
X2
add
mark
X1
X2
add
X1
X2
if
X1
X2
mark
X3
if
X1
X2
X3
zero
active
X
zero
X
s
mark
X
s
X
if
mark
X1
X2
X3
if
X1
X2
X3
if
X1
mark
X2
X3
if
X1
X2
X3
add
X1
mark
X2
add
X1
X2
p
active
X
p
X
p
mark
X
p
X
add
active
X1
X2
add
X1
X2
add
X1
active
X2
add
X1
X2
prod
active
X1
X2
prod
X1
X2
zero
mark
X
zero
X
mark
add
X1
X2
mark
X2
mark
add
X1
X2
mark
X1
mark
add
X1
X2
active
add
mark
X1
mark
X2
active
fact
X
mark
if
zero
X
s
0
prod
X
fact
p
X
active
add
s
X
Y
mark
s
add
X
Y
mark
prod
X1
X2
mark
X2
mark
prod
X1
X2
active
prod
mark
X1
mark
X2
active
prod
s
X
Y
mark
add
Y
prod
X
Y
active
if
false
X
Y
mark
Y
mark
s
X
mark
X
mark
if
X1
X2
X3
active
if
mark
X1
X2
X3
mark
fact
X
active
fact
mark
X
active
add
0
X
mark
X
true
Failed!
NaTT
certifiable-1.6