Hey Matt, 

Attached are the matrix style data file (rows are sequences, final column is the label of the sequence), the csv data file formatted to run the swarm (labels removed and sequences concatenated), and the main py script for reference. 

Thanks!
Nick

0,5,3,4,5,4,5,8,8,9,9,10,13,12,12,12,11,12,12,14,14,14,0,0,15,3,6,6,5,0
12,2,3,4,4,4,5,4,7,7,8,9,8,12,12,10,13,11,12,9,12,12,13,14,14,14,0,0,14,0
0,5,3,4,4,5,5,6,7,8,7,9,9,10,12,12,14,12,13,10,13,11,14,15,15,15,0,0,15,0
12,2,6,4,5,6,6,6,9,8,14,9,10,12,12,12,12,12,12,14,14,14,15,1,15,2,5,4,5,0
14,4,5,4,4,5,5,7,8,8,9,9,10,12,12,11,12,13,13,13,14,14,15,0,1,4,8,7,4,0
3,2,1,2,0,2,3,1,4,3,2,9,10,12,10,10,12,10,10,11,9,9,12,9,12,9,10,13,8,1
3,6,2,4,4,4,5,5,4,4,2,6,3,12,13,12,14,12,12,11,14,13,12,10,11,13,13,13,15,1
1,2,1,1,2,2,2,4,2,14,10,12,11,11,11,12,14,8,10,13,9,11,9,8,9,12,9,10,10,1
2,1,2,1,3,2,4,1,2,1,2,8,12,11,13,13,8,13,12,9,10,9,10,12,10,14,11,12,8,1
1,2,1,2,1,2,2,0,3,2,7,2,13,9,13,11,14,10,12,9,12,12,14,13,13,14,12,14,12,1
0,14,15,14,11,10,10,10,9,9,9,8,8,8,6,6,3,2,2,1,0,15,1,14,14,14,15,15,0,2
4,0,1,15,1,14,12,10,10,12,10,8,8,8,6,7,4,4,2,0,15,15,14,15,15,14,15,15,15,2
4,1,15,0,15,11,10,12,10,11,9,7,8,6,7,4,4,0,1,14,15,14,14,14,14,0,15,0,0,2
5,1,0,0,0,14,13,10,10,11,8,9,8,9,6,6,4,3,2,15,0,15,14,14,13,0,15,0,15,2
4,0,0,0,1,13,14,10,9,10,9,8,8,8,6,6,4,2,2,13,15,14,14,15,14,14,0,0,1,2
2,1,15,0,15,14,0,12,10,10,8,8,7,7,3,3,0,0,15,0,14,13,10,9,9,8,8,6,7,3
0,0,15,15,1,15,0,14,9,9,9,8,9,5,0,0,0,0,15,0,14,13,9,10,9,7,8,8,8,3
2,0,0,0,0,15,0,14,9,9,8,8,8,0,0,0,15,0,0,14,10,9,8,9,7,10,7,7,8,3
2,15,0,15,15,10,11,8,8,8,8,7,7,1,14,0,15,15,15,14,10,9,9,8,8,7,8,8,7,3
2,1,0,0,14,14,14,10,9,8,9,8,8,0,0,0,0,15,0,1,14,13,9,9,8,8,8,8,7,3
13,11,13,11,11,12,10,11,0,15,0,15,0,0,0,15,0,4,4,4,5,5,4,8,11,13,12,12,12,4
10,9,11,10,11,15,14,15,0,15,0,15,15,14,2,2,5,3,3,3,2,3,11,12,12,12,12,11,11,4
10,11,10,10,10,10,10,14,0,15,0,15,0,14,0,15,15,3,4,3,2,2,2,9,12,10,12,11,11,4
10,8,9,10,8,13,14,0,14,15,14,0,15,15,15,15,0,3,3,3,3,3,4,11,12,11,12,12,10,4
10,11,10,10,11,12,12,0,0,15,0,15,0,0,15,0,14,4,4,3,2,2,3,10,11,12,12,11,11,4
8,8,7,8,8,8,8,4,13,13,11,2,1,0,0,0,0,15,15,12,10,10,9,8,8,7,7,8,7,5
8,7,8,7,8,8,6,9,6,6,13,10,11,0,0,0,0,0,0,0,0,15,13,10,9,7,8,6,9,5
8,8,7,8,8,8,8,7,10,11,14,1,0,1,0,0,0,15,0,0,13,12,9,8,7,9,7,8,7,5
8,8,8,7,9,7,8,7,8,8,12,10,15,0,1,1,0,0,0,0,15,15,12,8,8,8,8,8,7,5
6,9,6,7,7,8,8,8,7,0,10,13,1,0,0,0,0,0,1,15,0,0,10,10,9,8,7,8,6,5
6,9,8,8,8,9,10,10,13,12,14,14,15,14,0,15,0,0,0,1,5,4,6,7,7,7,7,8,8,6
6,8,8,8,9,10,10,12,11,10,13,13,13,14,15,0,0,0,0,2,5,4,6,7,6,8,6,7,7,6
2,8,8,8,8,9,9,11,12,11,12,14,14,15,0,0,0,2,3,8,5,6,6,7,8,7,9,8,12,6
3,7,9,8,6,10,9,12,12,13,13,15,14,14,0,0,0,3,3,7,6,6,7,7,7,7,9,8,11,6
1,8,8,8,6,11,10,9,12,10,13,14,14,15,15,0,0,1,1,7,5,6,6,7,7,7,8,9,11,6
2,14,0,0,1,15,15,1,15,0,0,0,1,0,9,6,10,4,5,10,8,10,8,11,9,10,9,10,9,7
0,0,0,0,0,0,0,0,2,2,9,8,9,10,11,10,10,7,9,9,8,8,10,10,9,5,12,8,7,7
0,0,2,3,4,6,6,6,9,10,15,0,0,0,15,14,14,11,12,9,9,8,8,7,7,2,2,3,1,8
0,2,4,3,5,7,7,7,8,8,13,0,14,14,14,15,14,13,13,10,8,9,8,7,6,3,2,2,1,8
0,1,2,2,5,7,6,7,9,9,14,14,15,15,15,15,14,12,12,9,8,8,8,7,5,4,1,2,0,8
0,0,1,1,4,6,6,6,7,6,10,15,15,14,0,1,15,14,14,11,9,9,8,8,8,6,2,4,2,8
15,0,1,2,4,5,4,7,8,6,11,15,14,15,15,15,14,14,12,11,10,10,8,7,8,5,2,3,2,8
0,0,0,0,0,0,0,1,0,0,0,6,8,5,10,10,12,11,11,10,12,10,12,11,10,4,15,10,4,7
4,5,2,4,0,12,13,12,12,12,5,5,5,6,5,0,14,0,0,15,0,0,14,8,8,9,8,9,7,10
9,2,1,3,2,12,12,12,13,10,4,6,5,6,15,15,0,0,0,0,0,0,10,8,8,8,9,8,8,10
9,2,2,4,4,14,12,13,13,13,6,6,6,6,6,15,0,0,0,0,0,0,0,6,8,7,8,8,8,10
4,3,3,4,4,12,12,13,13,12,5,8,6,7,6,15,0,15,0,0,15,0,15,7,7,10,6,9,9,10
4,2,4,3,9,13,13,14,12,13,5,9,6,5,7,14,0,0,0,15,0,0,0,8,8,8,9,8,7,10
10,6,8,8,10,12,11,14,1,15,2,0,2,1,2,1,2,1,0,2,0,0,1,2,2,14,2,1,0,11
8,8,12,10,10,12,11,1,14,0,2,0,2,0,2,0,3,1,1,2,0,2,1,0,0,0,1,0,0,11
10,12,8,10,12,12,2,14,2,14,2,0,2,15,2,0,2,0,2,0,1,2,0,2,14,1,0,0,0,11
8,10,11,11,10,12,10,12,2,3,0,2,2,15,2,0,1,1,1,2,0,2,15,1,0,1,0,0,0,11
8,10,9,9,10,12,12,13,2,1,3,0,0,3,0,0,1,2,0,1,2,0,1,0,1,14,2,0,0,11
9,10,10,9,11,8,9,7,6,6,4,4,5,2,3,3,0,13,13,15,14,13,15,13,13,15,14,14,15,12
9,9,10,9,10,10,9,9,8,8,6,5,5,5,3,4,3,3,2,13,12,14,13,13,12,14,14,15,14,12
11,9,10,10,10,10,9,8,7,7,6,4,4,4,4,4,2,0,0,13,14,14,14,14,14,0,14,14,15,12
10,10,10,9,11,6,7,6,5,5,4,4,4,4,2,2,1,13,14,13,14,12,14,14,13,0,14,0,13,12
8,9,10,9,10,8,10,8,4,5,2,4,3,2,2,1,1,14,14,13,14,14,12,14,13,14,14,13,14,12
0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,2,14,2,0,0,2,14,1,0,13
14,2,0,1,14,2,0,0,0,14,2,0,0,2,14,0,2,14,0,2,14,0,2,14,0,0,1,0,0,13
2,14,1,0,14,2,0,0,0,0,0,2,14,2,0,1,1,1,0,2,14,2,14,1,0,0,2,14,1,13
2,0,14,2,14,1,2,14,1,0,2,14,0,0,1,0,2,14,14,2,0,0,0,0,0,0,0,1,14,13
14,2,0,1,1,1,1,1,1,1,1,1,2,0,0,0,0,2,14,2,0,0,0,0,14,2,14,0,0,13
14,4,8,9,6,8,6,10,6,6,10,6,8,8,8,6,8,8,8,8,8,8,8,8,6,10,8,8,10,14
6,10,6,8,8,8,6,9,6,8,6,9,6,10,6,9,6,8,8,8,8,8,8,6,8,6,9,8,8,14
14,1,14,12,6,9,9,6,8,8,8,8,8,8,8,6,9,6,6,9,6,6,8,8,9,6,9,8,8,14
0,0,0,14,1,14,14,6,10,8,8,6,8,8,8,8,6,9,8,8,8,8,8,8,8,9,6,8,8,14
10,6,9,10,6,9,8,8,8,6,10,6,6,10,6,8,8,8,8,8,8,8,8,8,6,8,8,8,8,14
4,5,5,6,7,8,10,15,15,15,0,14,15,14,14,14,12,9,10,8,8,8,8,7,7,8,6,4,4,15
9,9,12,13,12,15,13,0,13,13,15,13,15,12,13,11,12,9,11,8,9,8,9,8,9,7,8,8,7,15
7,8,12,14,12,15,0,12,15,14,15,13,14,12,13,13,11,10,10,9,8,9,7,8,8,8,6,7,6,15
6,7,7,7,8,8,8,12,15,15,14,15,14,1,14,15,12,11,12,10,9,8,8,7,8,8,6,6,6,15
7,6,8,6,9,12,12,15,14,14,0,15,15,15,13,13,11,10,9,9,8,7,8,7,7,6,7,7,5,15
1,14,0,0,8,12,8,11,11,10,12,10,12,8,12,12,10,12,10,12,12,10,14,10,12,10,11,11,7,7
0,0,0,14,0,8,8,9,9,8,9,9,11,10,11,12,10,11,11,10,11,10,10,9,10,9,7,8,4,7
6,8,7,8,8,10,11,11,14,14,15,15,0,0,1,2,4,4,4,4,11,11,11,11,10,14,10,11,12,9
1,3,5,4,7,8,8,8,8,9,9,11,11,14,15,15,0,1,1,6,2,3,4,12,10,11,10,10,11,9
4,6,9,8,8,9,9,10,11,12,13,0,14,1,2,3,2,5,4,4,10,10,12,10,10,12,11,11,12,9
4,6,8,6,8,9,10,12,12,12,15,15,0,0,1,2,3,4,4,4,10,11,10,11,11,10,12,11,11,9
3,2,5,5,7,8,7,9,11,10,12,12,13,14,15,14,0,3,4,4,4,4,4,11,12,10,12,11,13,9
4,1,4,4,2,3,4,2,2,4,12,10,13,9,13,10,13,10,12,10,11,11,13,10,10,12,10,9,11,1
2,4,4,3,2,4,2,5,2,4,2,12,12,12,11,10,13,10,10,13,10,12,10,12,12,12,12,12,11,1
2,5,2,4,2,4,3,4,4,4,4,12,11,13,11,10,13,11,12,12,12,12,12,12,11,13,11,12,11,1
4,1,4,3,2,4,4,3,0,0,14,10,11,14,12,11,14,12,12,12,11,14,9,12,12,12,12,11,12,1
2,4,3,4,1,4,4,2,4,12,10,11,12,9,12,11,13,10,12,12,12,12,10,12,11,10,12,11,11,1
2,0,15,15,15,13,12,12,11,10,11,10,10,8,8,8,7,6,6,4,2,1,14,15,15,14,0,15,15,2
4,2,15,0,0,14,15,14,12,12,13,10,12,10,9,8,8,6,7,4,1,1,0,14,14,15,15,14,0,2
2,15,0,15,0,14,14,10,10,11,9,8,8,8,8,8,8,6,7,5,1,1,14,0,0,14,15,15,15,2
2,0,0,0,0,15,15,14,13,13,8,11,10,10,7,8,8,6,7,5,1,2,15,15,15,14,15,15,14,2
3,3,1,1,0,15,15,0,13,12,12,11,10,10,8,9,7,7,8,5,2,2,14,15,14,15,15,15,15,2
1,0,0,0,0,14,14,13,10,10,8,7,8,8,0,1,0,0,0,15,11,10,8,9,8,8,7,7,7,3
1,15,0,0,0,11,9,8,7,8,7,0,1,0,0,0,0,12,11,8,9,9,8,8,8,8,7,6,8,3
1,1,0,15,15,15,14,10,8,9,7,8,7,7,0,0,0,15,0,15,11,10,7,8,8,8,7,7,8,3
3,15,1,0,0,0,15,15,9,9,8,7,8,7,0,0,15,0,0,0,14,15,10,8,9,8,8,8,8,3
1,0,0,1,14,0,14,0,10,9,8,8,8,8,7,8,0,0,0,15,15,0,10,8,8,8,8,8,7,3
10,9,9,9,10,11,11,9,0,0,15,0,15,1,15,0,14,1,2,5,6,6,6,9,10,12,12,11,12,4
8,8,12,12,7,8,9,12,1,15,0,15,0,0,0,15,0,15,0,4,6,6,7,10,12,10,14,12,12,4
14,10,11,12,10,2,0,15,0,15,15,0,0,15,2,2,5,6,6,8,9,11,10,13,12,11,11,10,11,4
12,13,12,11,10,1,15,0,0,0,0,0,0,15,1,2,5,6,7,6,8,9,11,12,13,12,12,11,11,4
9,13,9,10,9,12,11,7,0,0,0,0,15,1,15,14,1,3,2,6,7,7,7,10,10,13,10,12,10,4
7,8,8,7,0,11,12,11,1,0,14,0,15,14,15,0,10,8,10,7,8,8,8,7,8,7,7,8,8,5
7,9,6,8,8,8,8,8,7,6,11,2,0,0,15,0,0,14,0,13,9,9,9,8,8,7,8,8,7,5
8,8,8,8,8,8,7,8,7,8,10,11,12,8,13,4,1,0,0,0,0,0,0,15,14,0,12,11,8,5
7,7,8,7,7,8,6,9,15,9,1,15,15,0,15,15,0,14,10,13,10,9,9,8,8,8,8,8,6,5
8,8,8,8,8,8,8,8,7,10,12,9,11,0,0,0,14,0,0,1,14,14,10,8,9,8,7,8,7,5
7,8,8,7,9,8,8,6,9,8,9,8,8,10,13,14,13,0,14,1,0,0,1,1,1,6,5,6,7,6
6,9,6,7,8,8,8,6,9,8,8,10,11,14,0,15,15,0,0,15,1,0,4,6,6,7,8,8,7,6
6,8,7,7,8,8,8,8,8,8,8,8,8,9,11,13,12,14,14,15,15,15,15,1,0,4,4,5,6,6
7,7,7,7,8,8,8,8,8,8,7,10,9,14,11,13,14,15,15,0,0,0,0,0,2,5,5,5,7,6
8,6,8,7,9,8,7,9,7,8,7,9,9,11,12,13,15,0,14,2,15,1,0,5,4,6,7,7,8,6
12,1,0,0,0,0,0,0,0,0,0,0,15,0,0,4,8,10,8,9,11,10,14,9,12,9,12,12,10,7
0,0,0,0,15,1,0,0,2,5,8,9,10,10,12,10,13,10,10,12,10,12,12,10,12,11,10,12,10,7
1,15,1,15,1,15,0,0,0,1,15,4,6,9,9,9,9,10,10,9,13,11,11,10,12,10,10,12,7,7
15,1,15,0,0,14,15,1,0,0,0,1,1,10,10,9,10,11,9,12,9,9,10,11,13,12,12,12,11,7
0,14,0,0,0,0,15,15,1,1,15,1,15,1,15,1,9,10,12,7,9,8,8,9,9,12,11,11,12,7
15,0,1,1,5,8,8,6,8,8,8,13,14,14,0,14,1,14,13,9,7,7,8,6,7,2,0,0,0,8
0,3,6,6,7,7,7,8,8,8,8,11,13,0,0,0,0,15,15,9,8,8,7,7,5,15,2,1,15,8
2,0,0,0,0,14,15,13,9,10,8,9,9,8,8,9,8,13,14,14,1,1,0,0,0,4,6,6,6,8
4,4,6,6,6,8,7,8,8,9,14,0,14,0,15,14,14,9,8,9,6,7,6,4,2,0,0,0,15,8
2,5,5,6,8,7,9,8,10,10,13,14,14,14,14,15,12,8,9,7,8,8,8,5,4,1,0,2,0,8
4,2,4,4,2,4,4,4,6,6,8,7,8,8,8,8,8,11,11,14,15,0,14,0,0,0,0,15,2,9
4,2,5,2,4,2,4,2,4,5,6,7,7,7,8,8,8,8,8,10,13,12,15,15,15,15,0,15,0,9
9,8,7,8,8,7,7,7,6,6,2,3,2,1,0,1,0,15,15,14,12,12,10,12,10,12,12,10,13,9
3,4,4,4,4,3,4,4,4,4,4,6,6,8,8,7,8,10,9,13,12,13,15,14,15,15,0,0,0,9
2,5,2,4,2,4,4,1,4,4,4,4,5,4,6,6,7,8,8,8,10,11,15,14,0,14,0,15,0,9
1,4,2,4,12,1,14,14,7,7,6,7,9,6,14,0,15,0,0,15,0,15,1,12,9,9,9,9,8,10
2,1,2,3,14,11,12,7,7,7,6,8,6,12,15,15,1,15,0,0,0,15,0,13,9,8,9,8,9,10
4,1,5,0,14,14,0,12,6,7,7,6,8,7,0,0,15,0,0,0,0,0,15,8,9,8,8,8,9,10
3,4,0,15,15,14,14,6,6,7,6,7,7,8,7,0,0,15,0,15,0,0,0,0,0,12,8,8,9,10
2,3,0,2,12,0,14,10,7,7,7,7,6,7,2,0,0,15,0,0,0,15,0,9,9,8,8,8,9,10
14,15,13,1,5,6,6,7,7,8,7,9,7,10,14,13,15,15,15,0,15,15,0,13,10,8,8,8,6,15
7,7,8,8,8,8,8,8,8,7,9,14,14,15,0,0,0,0,0,0,14,15,10,6,8,7,8,8,8,15
0,7,7,7,7,7,8,7,8,8,10,14,14,0,0,0,0,0,0,15,15,15,11,7,8,7,8,8,8,15
7,6,8,8,6,8,8,8,11,12,15,0,15,1,15,0,0,0,0,0,15,1,13,7,8,8,7,8,7,15
6,8,8,8,8,8,8,7,8,11,14,0,15,0,0,0,0,0,0,0,0,0,15,11,10,6,8,8,8,15
9,13,10,10,11,0,2,14,1,2,14,2,1,0,1,1,1,0,0,2,0,1,0,2,0,1,1,0,1,11
12,9,12,13,8,13,10,10,0,2,14,2,15,2,0,1,1,0,1,1,1,0,2,0,0,2,0,0,1,11
10,11,8,11,9,10,10,13,2,0,2,0,0,1,0,1,1,0,0,1,0,0,2,0,2,14,0,0,0,11
9,10,10,11,9,8,8,0,14,0,1,0,1,0,1,0,1,1,2,14,0,1,1,1,15,2,0,0,1,11
10,9,10,11,9,12,12,10,0,0,1,1,0,14,2,0,1,0,2,14,2,0,0,1,0,1,0,1,1,11
10,10,9,11,8,8,9,7,8,8,6,6,5,4,3,4,3,1,2,14,0,15,15,14,14,15,14,14,14,12
9,10,11,11,9,9,9,8,8,8,6,6,5,5,3,4,3,1,2,14,15,14,0,12,15,13,14,14,14,12
9,10,10,10,10,9,10,6,8,7,6,6,4,5,3,4,2,0,0,0,14,14,14,13,14,13,15,15,15,12
11,10,11,10,10,9,10,7,8,7,7,5,5,4,3,4,2,2,2,0,15,15,14,14,13,15,13,14,14,12
8,11,9,11,11,10,11,9,8,7,7,5,5,4,4,4,2,2,2,1,0,0,15,14,13,13,14,14,14,12
1,9,6,6,8,8,8,8,6,8,8,6,8,8,8,9,6,9,9,6,9,8,8,8,8,8,8,7,15,14
8,8,8,8,8,8,8,6,9,9,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,7,13
8,8,8,6,8,8,8,8,8,6,10,6,8,8,6,8,8,8,6,8,8,9,6,8,8,8,6,8,8,14
8,8,6,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,8,8,8,14
10,6,9,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14
0,0,0,1,14,2,0,2,14,1,0,0,0,0,0,14,2,0,2,14,1,0,2,14,0,0,0,1,13,13
0,0,0,0,0,0,1,14,2,0,0,0,1,14,2,0,0,0,1,0,0,0,0,0,1,14,0,0,0,13
2,14,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,2,14,1,1,15,13
2,14,1,1,0,0,1,0,0,0,0,0,0,2,14,1,14,2,0,0,0,1,0,0,0,0,0,0,15,13
3,4,5,5,3,8,8,8,10,10,10,12,11,11,12,11,12,12,13,0,0,0,0,2,2,4,3,4,3,0
3,4,4,4,4,7,7,10,11,12,9,12,10,12,11,12,12,14,13,0,0,15,1,3,2,4,4,6,3,0
4,5,5,5,7,10,10,11,10,11,10,12,10,12,12,12,14,15,0,15,0,1,1,5,4,4,4,4,3,0
2,5,4,4,6,8,8,8,10,10,10,11,10,10,12,11,13,15,14,0,0,15,1,3,3,3,3,4,2,0
2,4,4,5,6,9,8,9,10,9,12,10,11,10,13,13,14,14,14,0,0,15,2,4,3,3,4,4,3,0
8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,9,14
2,6,2,4,4,4,5,11,12,12,12,12,13,10,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,1
2,5,2,2,4,2,5,13,12,10,14,10,12,12,13,13,12,12,13,12,13,10,12,12,14,12,10,12,11,1
4,2,4,4,5,2,5,0,12,12,14,11,12,14,11,12,10,11,12,14,11,10,10,14,12,13,14,14,11,1
4,4,2,2,4,14,12,12,12,12,12,12,10,13,12,14,10,13,13,12,12,12,12,12,10,12,12,13,12,1
4,2,5,2,5,14,14,10,13,11,14,10,12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,12,9,1
3,2,0,0,0,13,13,11,12,11,11,10,10,10,8,10,8,8,7,5,2,2,14,0,14,12,13,14,14,2
3,1,0,0,15,13,13,10,10,10,8,10,8,8,8,7,7,4,4,0,14,14,11,13,13,0,15,0,0,2
2,0,0,15,15,12,13,10,10,10,9,9,8,8,8,8,8,6,6,1,15,15,14,13,14,14,0,14,1,2
6,5,1,1,0,0,0,15,13,12,10,11,10,10,10,10,10,7,8,6,4,4,0,14,0,13,14,14,15,2
6,2,0,0,0,0,0,15,12,12,10,10,10,10,9,10,8,6,8,6,2,2,1,14,15,12,14,14,0,2
3,1,0,0,0,12,13,10,9,10,10,8,9,8,3,2,0,0,0,0,14,14,11,12,12,11,10,10,10,3
3,0,0,0,14,12,12,10,10,10,10,7,6,0,0,0,0,12,12,14,11,11,9,10,8,9,9,8,8,3
0,0,14,14,10,9,9,9,8,10,7,9,6,0,0,1,15,0,0,15,12,13,11,11,10,10,8,8,8,3
1,15,12,11,9,8,9,8,7,8,5,15,0,0,0,15,15,13,13,9,8,8,8,7,9,6,8,7,8,3
1,15,0,0,12,9,9,8,8,8,9,8,8,1,15,0,15,0,0,14,11,10,8,8,8,8,8,7,14,3
11,10,11,10,10,1,1,15,1,0,0,0,0,15,2,8,4,4,4,4,3,8,11,11,12,11,11,11,12,4
12,10,12,11,10,0,15,1,0,0,14,6,5,2,4,4,4,10,12,12,12,12,10,12,11,11,10,10,11,4
11,12,11,10,12,1,0,15,0,0,0,0,14,6,4,4,4,4,4,11,11,11,12,11,11,10,10,11,12,4
11,12,11,11,12,12,11,13,10,12,2,14,0,0,15,0,14,6,6,5,4,4,4,10,12,12,10,10,10,4
9,11,11,11,13,11,10,1,0,0,15,0,0,0,14,14,6,4,4,4,5,8,11,12,11,11,12,11,12,4
8,8,8,7,8,13,12,12,11,10,1,1,0,1,0,0,0,14,12,13,10,12,9,10,9,9,9,8,8,5
8,6,8,8,6,10,11,12,11,10,12,2,1,0,0,0,0,13,12,12,10,10,9,8,8,8,7,8,6,5
8,8,8,7,8,8,8,13,10,10,1,0,0,0,0,0,15,14,12,9,9,10,8,9,8,8,8,8,7,5
8,8,7,7,7,7,8,6,11,11,11,11,10,1,1,1,15,0,0,15,15,15,13,11,12,10,8,8,9,5
7,8,7,8,6,8,7,13,11,12,11,0,1,0,0,0,0,14,14,10,9,9,8,8,8,7,7,8,5,5
8,7,8,7,10,8,9,10,11,11,12,14,14,14,0,15,15,2,3,3,6,5,7,7,8,7,8,6,10,6
8,8,8,8,8,10,8,10,11,10,11,12,12,14,14,14,0,0,0,0,1,1,2,5,4,6,6,6,6,6
8,10,8,9,8,10,10,10,11,11,11,12,12,12,14,14,14,0,15,0,1,2,2,4,4,5,6,6,6,6
8,8,8,8,8,8,8,8,8,9,10,11,11,12,14,14,0,0,15,1,0,0,2,6,5,7,6,7,6,6
8,8,9,10,8,11,11,10,12,10,13,12,12,13,14,15,0,0,0,0,3,2,4,4,4,6,6,6,6,6
0,1,0,1,15,0,0,0,0,0,14,0,15,1,14,1,15,14,15,9,9,9,8,11,13,10,10,11,10,7
0,15,1,15,1,0,15,1,15,0,0,0,0,0,9,9,10,9,10,8,10,9,10,8,10,8,11,10,9,7
1,15,0,0,0,0,0,0,0,0,0,11,8,9,9,10,10,10,10,10,11,11,10,11,11,10,12,11,12,7
0,2,15,0,0,0,0,10,10,10,10,11,12,9,12,10,10,12,10,13,10,12,9,12,11,10,12,14,9,7
0,0,0,0,0,0,1,15,0,0,0,0,0,15,9,10,8,11,10,11,10,11,10,11,10,12,10,10,12,7
0,0,3,5,7,6,7,6,8,9,14,14,14,14,13,14,10,8,8,7,8,8,4,1,2,1,1,0,2,8
0,15,1,0,5,7,6,8,6,7,11,14,14,14,14,13,10,8,8,7,7,7,7,2,2,1,0,1,0,8
0,4,6,6,6,8,8,7,12,13,15,14,15,14,11,11,8,8,8,8,7,6,6,3,4,0,1,0,15,8
0,0,4,5,6,7,6,8,12,13,14,14,13,14,10,11,7,7,7,4,2,4,0,1,0,15,2,1,6,8
2,6,7,7,7,8,7,8,14,15,15,14,15,14,13,13,9,8,8,7,7,8,6,2,3,1,1,0,0,8
10,9,9,9,8,8,8,5,3,3,1,2,2,0,1,0,15,0,15,11,12,11,10,12,11,12,12,12,11,9
12,11,9,10,7,9,8,8,5,5,2,3,2,2,0,0,0,0,15,10,10,11,11,10,11,11,10,12,12,9
11,10,11,11,10,8,9,8,7,7,5,3,4,4,2,3,1,2,2,1,0,0,15,12,12,10,10,10,11,0
10,11,8,8,8,7,8,7,6,4,3,2,2,1,0,0,12,10,10,12,10,10,12,12,12,12,11,12,12,9
12,11,10,10,8,8,9,7,8,7,7,6,6,6,3,4,2,1,0,2,0,1,15,0,15,0,12,13,10,0
13,10,10,10,10,7,9,6,7,6,4,2,2,2,1,1,1,0,1,0,11,11,9,11,11,10,12,12,10,9
10,9,8,8,7,8,8,8,6,6,6,3,5,2,0,0,0,0,0,0,0,0,15,0,15,12,11,9,12,0
11,8,8,8,7,7,7,6,2,4,1,1,2,0,0,0,0,14,15,11,8,10,8,12,11,10,12,10,12,9
3,5,4,5,7,8,8,8,10,10,11,11,11,11,12,11,14,15,14,15,0,0,0,1,0,1,4,2,6,0
6,4,7,7,8,9,9,10,11,12,12,12,12,13,12,14,14,0,0,14,1,0,4,5,3,4,3,3,4,0
5,6,8,6,8,6,8,8,10,12,13,14,0,14,14,15,13,13,14,12,12,12,10,9,9,8,9,8,8,15
5,5,8,8,6,9,7,11,11,11,14,15,14,0,14,15,13,13,12,10,10,11,8,10,9,8,9,8,8,15
5,7,7,7,9,8,8,9,11,11,14,15,15,14,0,15,14,10,12,11,8,9,9,7,7,9,5,5,2,15
4,6,6,8,6,8,8,9,14,15,14,15,15,14,13,13,13,12,10,10,9,10,9,7,8,8,6,6,6,15
2,6,7,6,7,8,8,9,10,11,12,14,15,15,0,0,0,0,15,0,15,0,13,8,9,8,6,8,7,15
3,4,3,4,15,12,13,12,12,12,6,6,6,6,5,0,0,0,0,0,0,0,9,8,8,9,9,9,11,10
4,2,4,3,3,12,13,11,12,12,12,6,6,5,5,6,5,0,0,0,0,0,0,9,8,9,9,10,9,10
4,2,4,2,4,13,13,12,13,12,12,7,6,5,6,4,6,15,15,0,0,0,0,8,8,9,9,9,12,10
3,4,3,3,2,14,14,13,13,13,6,6,6,6,6,6,8,0,0,0,0,0,0,12,9,8,9,8,10,10
3,3,2,3,2,13,13,11,13,12,10,6,6,6,5,4,7,15,0,1,0,0,0,0,8,10,9,9,11,10
10,10,10,9,10,10,10,8,8,8,6,3,4,4,3,2,3,0,1,15,14,14,13,13,12,13,13,12,14,12
10,10,10,10,10,11,11,9,8,8,8,7,8,4,3,4,2,2,2,2,2,1,15,0,0,14,12,13,12,12
10,11,10,10,10,10,10,9,8,8,7,4,5,4,4,4,2,2,3,2,0,1,0,14,15,13,12,13,12,12
12,10,10,11,9,10,10,8,10,9,8,7,6,5,4,4,4,3,2,2,0,1,15,14,15,13,13,12,13,12
10,10,10,9,9,10,9,9,8,8,4,3,4,3,2,2,1,1,1,0,14,14,12,12,12,12,12,13,14,12
9,9,10,10,11,12,12,14,0,0,1,0,2,1,2,2,0,3,2,2,2,2,4,2,2,4,3,1,3,11
9,9,8,10,9,10,11,0,0,1,15,0,0,0,0,0,0,2,2,2,3,2,2,1,2,2,2,4,4,11
7,10,8,8,8,11,8,12,15,15,0,0,15,2,0,2,2,1,0,2,0,2,15,2,2,0,2,2,8,11
9,9,9,9,9,11,9,12,13,13,15,2,15,2,15,0,0,0,0,1,1,0,2,0,1,0,2,1,1,11
9,9,8,8,10,10,11,14,15,15,2,0,15,2,0,0,0,2,0,2,1,3,0,4,1,1,2,2,1,11
6,9,6,9,5,10,8,8,8,8,8,8,8,6,9,8,8,8,6,9,6,9,6,9,8,8,8,14,2,14
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,9,8,8,8,4,10,2,0,0,14
8,8,8,6,10,6,8,8,8,9,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14
6,8,8,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,6,9,8,8,8,8,8,8,8,6,14
8,6,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,6,10,6,6,10,14
1,0,1,1,0,1,1,1,0,0,2,0,0,1,14,1,14,2,0,0,0,2,13,1,14,1,10,8,15,13
1,14,2,0,0,0,1,0,1,14,2,14,2,14,1,2,14,1,0,0,0,1,14,0,1,13,0,13,8,13
2,14,1,0,0,0,0,0,0,0,0,0,0,0,0,14,2,0,0,0,0,0,0,0,0,0,0,14,15,13
14,1,0,0,1,14,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,14,1,1,0,0,8,10,13
0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,0,0,0,0,0,1,15,13
3,1,3,1,3,2,2,3,1,2,2,11,11,12,12,11,13,11,12,10,12,12,10,12,11,12,11,11,13,1
8,8,3,2,5,2,2,4,2,2,5,2,2,4,2,2,2,4,2,2,2,2,5,2,1,5,2,2,2,1
10,3,2,3,6,2,4,1,4,3,2,3,2,2,4,2,4,3,2,2,4,2,5,2,2,12,12,12,10,1
4,1,3,3,2,2,3,5,1,4,12,12,12,12,12,12,12,11,10,10,13,12,12,12,13,12,12,10,13,1
3,4,3,3,2,4,2,3,12,11,10,12,11,12,12,12,12,12,12,10,11,11,10,12,12,12,12,12,12,1
6,4,2,2,0,15,0,15,13,13,12,11,11,10,9,9,8,7,8,7,4,4,1,14,15,14,13,13,14,2
8,3,4,3,0,0,0,15,13,12,13,11,12,10,8,8,7,7,7,7,4,4,1,15,0,14,14,13,15,2
5,4,0,1,14,15,15,12,12,11,12,9,10,8,8,8,6,7,6,3,2,3,15,14,15,13,14,13,0,2
4,1,0,1,0,0,0,14,12,12,12,10,10,10,9,9,8,8,8,7,4,4,2,0,15,13,14,13,0,2
2,0,0,0,0,13,13,11,10,10,9,8,9,8,7,8,7,6,7,4,2,3,0,0,15,14,14,14,14,2
8,3,1,1,0,15,0,13,12,13,11,10,9,9,6,8,1,15,0,0,13,12,9,8,9,8,8,8,7,3
1,1,0,0,14,12,12,11,9,9,8,8,8,8,8,8,0,0,0,0,0,0,14,12,11,9,8,9,8,3
2,15,0,14,13,11,12,9,8,8,9,7,8,6,0,0,1,0,1,15,11,10,9,8,8,8,8,7,8,3
2,15,0,0,14,10,11,9,8,8,8,8,6,8,5,0,0,0,0,0,0,0,12,9,9,8,8,8,8,3
3,0,0,0,0,12,12,9,8,8,8,8,8,8,1,0,0,0,0,0,14,15,10,10,10,8,8,8,8,3
10,11,9,10,0,0,0,15,0,0,14,0,0,15,15,9,5,6,5,5,5,5,11,10,10,11,10,10,11,4
10,10,11,11,10,12,10,12,0,15,0,0,15,1,15,0,15,6,6,5,6,5,5,11,11,10,11,10,13,4
12,10,10,10,10,10,15,0,0,0,15,0,15,1,15,8,6,5,5,5,5,4,10,12,12,10,12,11,11,4
11,9,11,10,9,0,15,0,15,15,0,15,14,6,2,5,4,5,4,5,11,12,10,12,12,12,10,11,6,4
12,10,4,0,1,15,0,14,15,11,5,2,4,6,3,4,0,12,11,10,12,11,13,10,11,12,11,11,8,4
9,6,8,7,9,12,10,11,2,0,1,15,1,0,15,15,14,12,10,10,8,9,7,9,8,7,8,7,7,5
8,8,7,9,6,12,12,12,11,11,2,0,1,0,0,15,15,12,12,10,9,9,8,8,8,8,7,8,6,5
8,6,8,8,6,13,12,12,10,11,2,15,1,14,0,15,15,12,13,10,9,9,8,8,8,7,7,7,7,5
6,8,3,12,12,11,11,12,1,0,0,0,0,14,15,13,13,10,10,8,8,8,8,7,6,9,6,6,7,5
8,6,14,11,10,12,11,2,15,1,0,0,0,15,14,13,12,11,10,8,9,8,8,8,8,7,7,7,6,5
7,8,8,8,8,10,9,10,10,11,12,12,12,12,14,13,15,0,0,0,1,1,5,4,4,5,6,6,6,6
6,9,8,8,8,10,10,12,11,12,11,13,12,14,0,15,0,15,0,1,4,4,4,5,6,5,7,6,8,6
7,8,8,8,8,10,9,10,11,11,12,12,12,13,15,14,0,0,0,1,3,4,4,6,5,6,7,5,8,6
6,8,8,8,8,10,9,9,11,10,13,12,13,13,15,14,15,0,15,2,3,3,5,6,5,6,6,7,7,6
6,8,8,8,8,8,9,8,10,10,11,12,11,13,13,14,15,15,0,15,1,1,3,4,4,5,6,6,6,6
0,0,0,0,1,15,1,14,1,0,0,0,0,0,0,9,10,10,10,11,10,9,12,10,12,10,12,11,12,7
6,0,1,15,1,0,0,1,15,1,15,0,0,0,10,9,11,10,10,11,11,11,10,12,12,9,13,10,12,7
0,2,15,1,0,0,0,1,0,0,0,0,15,2,15,1,0,9,11,8,10,11,9,12,10,10,12,12,10,7
15,1,0,1,15,1,0,15,1,15,1,15,0,8,11,8,9,11,10,12,10,12,10,12,13,10,12,12,12,7
1,0,1,0,0,1,0,1,0,0,0,9,10,9,10,9,13,10,10,12,10,10,13,10,11,11,11,10,13,7
14,2,0,1,7,10,8,10,13,13,0,15,15,15,15,15,13,9,9,8,7,7,7,6,7,4,2,2,0,8
15,4,0,15,1,4,4,8,9,8,9,12,12,14,15,15,14,15,0,12,8,9,7,8,7,7,5,5,2,8
4,15,1,0,1,1,4,8,9,9,9,14,14,0,14,15,14,12,11,9,7,8,7,7,7,6,4,5,2,8
15,1,3,3,6,8,7,8,10,9,13,0,15,0,15,14,13,10,10,8,8,8,7,6,6,3,2,2,0,8
0,0,0,1,1,4,4,7,7,7,9,9,10,13,0,15,0,14,13,10,8,9,7,8,7,7,4,5,1,8
11,10,10,10,6,8,6,5,4,4,4,2,3,2,1,1,15,13,10,12,10,12,10,11,11,11,12,12,13,9
10,12,10,9,8,5,4,5,3,3,3,1,2,1,14,15,12,12,10,11,10,11,11,11,11,13,11,12,13,9
0,12,9,10,11,8,8,7,5,5,4,3,3,2,1,1,1,14,13,9,11,10,12,12,13,11,13,13,11,9
13,10,10,8,9,6,6,5,3,4,2,1,1,0,14,14,11,10,10,11,10,9,14,11,11,11,13,12,12,9
15,10,9,9,8,7,8,6,4,4,3,2,2,1,1,1,15,12,12,9,10,11,11,11,10,12,12,12,12,9
7,8,8,8,8,9,9,8,11,10,13,12,12,13,14,14,15,14,0,14,1,0,0,2,0,2,3,1,5,0
6,6,8,7,9,9,8,9,12,11,12,12,13,14,15,0,14,0,0,0,0,0,0,2,1,4,3,4,5,0
3,6,7,7,8,8,8,9,9,10,9,11,11,12,13,13,0,14,15,15,0,0,1,0,1,2,4,4,2,0
8,8,9,8,8,9,9,12,12,12,14,14,14,0,15,15,0,0,0,1,2,2,3,3,4,4,5,5,5,0
6,8,9,7,9,9,9,10,11,12,12,14,14,15,15,14,0,0,0,0,0,2,0,3,2,3,4,3,5,0
0,2,0,1,11,7,7,8,7,7,9,15,13,15,14,15,13,5,4,5,4,3,5,11,10,11,11,10,12,10
1,1,1,1,1,9,8,7,8,8,7,8,8,15,14,14,13,14,11,5,4,5,2,5,10,11,10,10,11,10
2,1,1,1,10,7,8,7,8,8,7,13,14,15,15,14,14,14,11,5,4,5,4,3,7,10,10,10,11,10
2,1,1,1,9,7,8,8,8,7,8,7,0,14,15,15,14,13,8,4,5,6,3,5,9,11,10,11,10,10
1,1,2,1,8,7,7,8,8,8,7,14,15,14,14,13,14,7,6,4,4,4,3,4,5,10,11,11,11,10
7,9,10,12,10,12,12,12,14,12,15,14,0,0,2,1,1,1,2,2,1,1,2,2,3,2,2,3,1,11
9,10,10,10,11,12,11,12,12,11,0,2,2,1,2,2,2,2,3,0,2,3,2,2,2,2,3,3,2,11
11,12,10,11,12,12,10,12,2,1,5,1,2,3,2,2,4,2,3,2,2,2,3,3,2,2,4,5,2,11
8,12,10,10,10,12,10,13,10,11,10,12,0,4,2,1,4,2,4,1,4,2,3,2,4,2,3,2,2,11
6,13,12,12,10,12,13,10,13,12,12,13,0,2,1,2,2,2,1,3,0,2,3,1,3,2,2,3,2,11
9,10,11,10,11,10,10,9,6,6,4,4,5,3,3,3,3,14,14,12,13,13,13,13,12,14,6,8,3,12
10,9,11,10,10,11,9,12,7,7,4,5,4,4,3,3,2,2,2,0,12,13,12,13,13,12,13,13,12,12
8,9,10,9,11,11,10,12,10,12,7,5,5,4,4,4,4,3,4,3,1,0,13,13,14,12,13,14,11,12
10,9,11,9,11,10,10,11,10,10,5,6,4,4,4,4,4,3,3,3,2,0,12,14,12,13,12,12,13,12
9,10,10,10,10,11,10,12,8,8,5,4,5,3,4,3,2,3,3,15,12,13,12,13,12,13,13,14,13,12
4,6,6,6,8,8,8,13,15,14,15,14,14,14,12,12,10,9,9,7,8,8,7,6,6,5,4,4,3,15
5,6,7,7,8,8,9,9,14,14,15,14,14,14,12,13,10,9,8,8,7,7,7,6,6,5,3,3,2,15
8,7,9,8,8,9,8,9,12,10,14,15,15,13,0,14,14,15,13,15,13,15,10,13,11,9,9,9,7,15
7,8,8,8,13,14,14,14,14,15,13,14,12,14,11,13,10,11,10,8,8,8,8,8,7,8,6,8,6,15
4,6,6,8,7,8,8,9,12,12,15,15,15,14,12,13,10,10,10,9,7,8,8,6,7,6,4,5,3,15
8,8,9,8,8,8,6,10,6,8,10,6,9,6,10,8,8,8,8,8,8,8,8,8,9,8,8,8,9,14
8,8,8,8,8,8,10,6,9,8,8,8,6,10,6,6,10,6,8,8,8,8,8,8,8,8,8,8,7,14
8,6,10,8,8,8,8,8,9,9,6,10,8,8,8,8,8,8,9,6,10,8,8,8,6,10,8,8,10,14
8,10,6,8,10,6,8,8,8,8,8,8,6,10,8,9,6,10,8,10,6,10,6,9,8,8,8,8,8,14
3,14,6,8,8,6,8,8,8,8,8,8,10,5,10,8,8,8,6,10,8,8,8,9,8,8,8,8,9,14
3,14,1,2,14,1,0,2,14,0,2,14,0,2,14,0,0,0,2,14,1,14,2,0,0,0,0,1,14,13
3,14,1,0,0,0,2,14,1,14,2,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,13
0,2,14,14,2,0,0,0,0,2,14,1,2,14,1,0,0,1,0,0,0,0,0,0,0,0,14,0,0,13
1,1,1,2,14,1,0,2,14,2,14,1,1,14,2,1,14,2,0,0,0,2,14,1,2,14,1,0,14,13
1,2,14,2,0,0,14,2,0,14,2,0,2,14,1,2,14,1,0,2,14,0,0,0,0,0,1,0,0,13
2,1,1,1,1,9,10,10,10,11,11,12,11,12,11,10,12,7,8,7,8,0,0,15,0,0,0,0,0,1
8,8,7,7,6,3,3,0,14,15,13,12,11,11,10,9,10,8,8,7,5,4,1,12,12,14,15,15,0,2
3,0,4,1,6,8,8,12,10,11,10,11,11,10,10,11,12,11,11,14,10,11,12,11,12,12,11,10,11,1
2,2,3,2,2,2,1,4,1,3,1,4,2,13,10,12,12,12,10,13,11,10,12,12,12,10,11,12,10,1
2,2,3,3,1,3,3,1,3,2,1,5,8,11,11,12,11,12,10,10,12,11,12,11,12,10,12,10,14,1
2,2,2,2,2,1,2,1,2,2,2,2,2,4,10,10,12,11,12,10,12,12,10,12,11,13,12,12,11,1
5,2,1,1,0,14,15,11,10,9,10,10,10,10,9,8,8,7,7,7,2,2,15,12,13,13,0,14,0,2
5,2,2,2,0,0,14,12,12,10,13,10,11,10,10,10,11,9,10,9,8,10,8,8,8,1,15,0,0,2
0,0,15,14,12,12,11,11,10,10,10,9,9,9,9,8,8,7,8,1,0,0,0,0,0,0,0,0,15,2
6,0,0,14,14,8,11,9,9,8,8,8,10,7,15,15,15,15,15,14,9,10,9,8,8,8,8,10,8,3
5,15,12,0,12,8,9,9,9,10,9,8,8,1,14,14,14,14,14,11,10,10,10,8,10,8,9,8,8,3
0,7,4,2,0,0,0,15,14,15,11,11,10,8,8,8,8,3,0,15,0,15,15,14,13,10,8,9,7,3
6,1,0,0,2,15,0,14,15,13,14,13,10,12,11,11,9,10,8,10,10,10,7,8,8,8,8,9,6,3
1,2,15,1,13,12,12,11,10,9,10,7,7,9,3,2,14,0,0,14,12,13,9,10,8,8,8,8,2,3
7,10,12,11,13,11,13,9,0,15,1,15,0,0,0,0,15,15,0,15,7,6,1,4,3,14,12,10,12,4
6,10,13,12,11,11,11,2,14,15,1,15,0,1,15,15,5,3,3,4,3,3,11,13,12,13,11,11,12,4
5,12,11,11,10,11,4,15,0,0,0,0,0,0,0,0,15,4,4,4,4,4,10,12,11,12,11,12,10,4
11,11,1,0,0,0,14,2,14,2,5,3,3,4,4,2,4,11,12,10,12,12,12,12,12,12,12,12,12,4
8,7,8,8,8,8,12,9,0,0,0,0,0,15,15,1,10,12,13,10,7,8,8,8,8,8,8,8,7,5
2,8,7,7,8,8,7,11,11,12,10,3,1,14,1,0,0,0,15,1,10,11,11,13,8,7,8,7,8,5
7,8,8,9,8,8,8,6,13,12,9,13,12,1,15,0,15,0,0,1,15,2,10,13,12,7,8,8,8,5
8,8,8,8,7,8,7,13,11,10,1,15,0,15,0,15,2,11,10,14,7,8,8,8,8,8,8,8,8,5
8,8,8,8,7,8,7,13,11,0,1,15,0,1,0,8,12,12,12,7,7,8,6,8,7,9,7,8,8,5
6,7,9,8,8,9,8,8,8,8,9,10,10,9,10,10,12,11,12,0,0,0,1,3,4,4,5,4,5,6
8,8,8,8,8,9,8,9,8,10,9,9,10,9,10,10,12,12,12,15,0,1,0,2,3,2,6,4,6,6
6,9,7,8,8,8,9,7,9,8,10,9,10,9,10,10,12,12,11,14,14,0,14,0,0,3,4,4,5,6
13,9,6,9,6,9,7,10,7,8,10,8,9,8,9,9,9,10,12,10,12,12,12,0,0,1,4,4,7,6
8,7,8,8,8,8,8,8,9,8,9,9,8,10,11,11,14,0,15,0,4,4,4,6,4,7,5,6,7,6
8,2,0,0,0,0,0,0,0,0,0,1,0,0,1,5,13,10,10,11,13,12,14,10,13,9,13,11,11,7
4,14,0,0,14,0,0,0,15,0,0,15,0,0,0,0,0,0,0,6,13,12,12,10,12,12,10,12,11,7
3,14,0,0,0,0,14,1,15,15,2,15,0,0,0,1,0,0,1,12,13,12,14,10,12,12,12,10,13,7
4,15,1,15,1,0,0,15,1,0,0,0,0,0,0,0,1,0,6,12,10,12,12,10,12,12,11,10,12,7
7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,1,8,10,10,11,11,12,9,12,10,7
3,7,7,7,7,8,7,8,10,11,15,14,15,14,14,14,14,11,12,7,8,7,8,5,6,1,2,1,3,8
6,8,7,8,6,9,8,13,0,14,0,14,15,15,14,14,9,8,8,8,6,7,2,1,1,0,1,0,2,8
8,7,7,7,7,9,8,14,15,14,0,14,15,14,14,14,8,8,8,7,7,7,1,0,1,1,2,1,0,8
6,7,8,8,8,8,8,9,14,13,14,14,14,12,14,14,10,7,8,7,8,7,8,5,5,1,0,0,1,8
8,8,8,8,8,9,10,14,15,15,14,15,15,14,13,14,9,10,9,6,8,6,3,1,2,1,1,2,1,8
10,8,8,7,8,4,4,2,1,1,15,13,12,11,10,11,11,12,11,12,12,13,7,7,8,8,7,8,5,9
8,9,7,8,8,7,8,7,8,6,1,4,2,1,14,0,15,15,0,15,10,11,10,12,12,10,12,11,11,9
7,8,7,8,8,7,8,8,2,3,4,4,5,15,0,14,0,15,0,0,15,14,10,12,12,11,11,11,11,9
8,9,7,9,7,8,9,8,2,4,1,2,3,14,0,15,0,15,0,10,11,12,12,11,12,10,11,11,11,9
10,6,8,7,8,7,8,2,3,3,4,4,5,15,0,15,0,0,0,10,11,12,11,11,12,12,10,11,12,9
7,7,8,8,12,11,12,9,13,12,11,12,12,13,14,14,14,0,15,0,1,0,5,4,4,3,4,3,6,0
8,12,12,12,10,14,15,14,15,0,14,0,0,1,0,0,1,1,3,4,4,4,4,6,5,8,6,6,8,0
4,7,7,7,8,9,8,11,11,12,11,13,13,14,15,14,0,0,0,1,1,1,2,4,3,4,5,5,6,0
7,4,8,6,8,7,7,7,8,6,10,13,11,12,13,14,15,15,0,15,0,15,0,0,15,2,4,4,4,0
8,9,7,7,6,7,8,5,8,8,9,8,9,11,13,12,14,14,0,14,15,0,0,0,0,0,1,0,5,0
2,2,2,1,4,12,13,12,13,12,6,6,6,7,8,7,15,0,0,0,0,0,0,15,0,15,0,10,8,10
5,3,5,4,2,13,14,14,13,13,6,8,7,7,7,8,7,15,15,0,0,0,0,0,0,8,8,8,9,10
5,2,3,3,1,12,13,14,11,12,6,6,6,7,7,6,15,0,0,15,0,0,15,0,0,8,9,8,8,10
2,6,2,2,2,13,13,13,13,6,7,7,8,7,8,7,0,0,0,0,15,0,0,0,15,0,8,8,10,10
4,2,4,4,3,12,14,13,13,13,6,7,7,6,8,7,0,0,0,0,0,0,15,0,0,12,8,8,9,10
10,10,12,11,11,11,12,11,10,12,10,13,0,0,0,0,1,0,1,1,0,1,0,2,1,0,1,1,1,11
6,11,10,10,11,11,10,11,10,10,11,10,11,11,9,12,9,11,10,9,11,14,2,4,3,6,5,7,7,11
7,13,10,12,9,12,10,12,10,12,10,15,0,15,1,0,0,0,0,0,0,0,0,1,15,2,15,1,15,11
10,13,12,11,12,12,12,1,0,0,0,1,0,2,0,0,14,2,0,0,0,0,2,15,0,0,0,1,14,11
11,10,11,10,10,12,11,1,14,1,14,0,0,2,15,1,14,1,0,2,15,2,14,0,0,1,1,15,2,11
9,10,10,10,10,10,11,9,10,10,5,4,4,5,4,6,4,15,15,15,14,15,14,14,0,13,15,14,15,12
9,11,10,10,10,9,9,10,10,10,5,4,4,5,4,4,5,3,3,14,14,15,13,14,13,14,14,14,14,12
10,12,10,12,9,10,9,10,10,10,4,4,4,3,4,3,5,4,4,4,13,14,12,15,14,14,14,14,14,12
8,9,9,8,10,8,9,9,9,8,5,3,5,3,4,5,1,14,14,14,14,14,14,14,14,15,14,14,14,12
5,9,9,10,8,10,8,10,9,6,4,4,5,3,4,5,4,0,13,15,14,13,14,14,15,13,14,13,14,12
8,8,10,12,12,12,13,12,14,11,14,14,0,13,0,14,12,13,12,12,10,9,7,8,8,6,8,7,0,15
6,7,7,8,6,9,8,9,11,10,12,14,14,0,15,0,14,0,15,14,15,0,12,7,8,8,8,7,7,15
15,3,6,8,7,7,9,6,10,10,12,12,14,12,14,14,15,15,15,14,10,10,9,8,8,8,7,7,7,15
9,8,10,10,13,12,13,14,14,13,0,14,14,0,15,14,0,14,14,11,11,11,8,9,8,8,8,8,8,15
6,7,7,6,8,8,8,9,12,11,15,14,14,15,15,0,0,14,0,0,0,0,0,0,15,14,14,12,10,15
6,8,6,9,6,8,8,8,8,8,8,8,6,9,6,8,8,8,8,8,6,6,9,6,6,8,2,0,0,14
8,8,8,6,8,8,9,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,14
8,8,8,6,8,8,8,8,8,6,8,8,8,8,6,8,8,8,8,8,8,6,8,8,8,8,8,1,14,14
6,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,10,6,6,10,8,8,8,14
9,6,8,8,8,8,6,8,8,6,8,8,8,8,8,8,8,6,8,8,8,8,8,8,8,8,0,14,2,14
1,1,1,2,14,1,2,14,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13
2,14,1,0,0,0,2,14,1,1,0,1,14,2,14,14,2,14,0,0,0,0,0,0,0,0,6,8,15,13
8,0,0,0,0,0,0,0,0,14,2,14,1,0,0,0,0,14,0,0,0,0,0,0,0,0,14,0,15,13
6,9,1,0,0,0,2,14,1,0,0,1,0,0,0,0,0,1,0,0,0,1,14,2,0,0,14,0,15,13
2,0,0,0,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,0,0,0,2,14,14,2,14,0,0,13
4,4,2,2,15,14,13,13,11,12,10,11,11,10,8,9,8,8,7,8,4,5,1,15,0,13,14,14,15,2
10,9,0,0,0,0,15,1,15,15,3,4,3,4,3,2,3,10,11,11,11,11,10,12,10,12,11,12,12,4
3,2,4,4,4,4,4,4,3,3,2,4,6,2,12,12,9,11,11,10,12,12,10,12,11,11,11,10,13,1
0,15,1,0,2,1,2,1,2,2,2,2,3,3,5,8,10,11,10,12,9,9,10,10,9,13,9,11,9,1
11,1,4,3,3,4,2,4,2,3,4,4,4,4,4,3,11,12,12,12,10,9,13,10,12,12,10,10,12,1
15,1,0,0,1,1,0,2,2,2,4,4,5,4,4,4,12,10,10,11,11,10,12,8,10,11,10,10,10,1
0,15,2,0,0,2,1,2,1,2,3,3,4,4,6,10,12,10,12,10,9,10,11,10,12,10,10,10,11,1
3,2,0,0,15,13,13,11,12,11,10,10,10,8,8,8,6,4,4,3,1,1,0,0,0,0,13,14,11,2
5,5,2,2,14,0,0,14,13,12,13,12,12,12,11,12,10,9,10,7,6,6,3,2,2,0,15,1,12,2
14,15,13,12,12,12,11,11,10,10,9,8,8,8,7,7,6,5,4,4,0,0,15,15,14,15,14,15,14,2
0,1,14,14,10,11,12,10,10,10,8,9,8,9,7,7,8,5,5,3,2,2,0,0,0,15,15,15,13,2
0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,14,13,0,13,11,8,10,8,10,1,0,2,13
11,0,0,0,0,0,0,0,0,14,1,14,0,0,0,1,14,0,0,0,0,0,0,0,0,0,0,0,1,13
0,0,0,0,0,0,0,0,0,2,14,1,0,0,0,0,0,0,0,2,14,0,0,0,14,2,14,14,1,13
1,0,0,2,14,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,13,13
0,0,14,2,14,1,0,0,0,2,13,2,0,0,1,2,14,1,2,14,1,2,14,1,0,0,0,15,1,13
8,8,8,8,8,6,8,8,8,6,10,6,6,8,8,6,10,6,8,8,8,8,8,8,8,8,6,8,8,14
8,8,8,8,8,8,8,8,9,6,10,8,8,8,8,9,8,8,9,6,8,9,6,8,8,8,8,9,7,14
6,9,6,8,8,6,8,8,8,6,9,6,6,9,6,8,6,8,6,9,6,6,9,6,8,6,4,5,1,14
6,10,6,6,10,6,6,10,6,8,8,6,8,6,9,6,8,6,8,8,6,8,8,6,6,6,6,8,5,14
9,8,8,9,6,8,9,6,8,9,6,8,8,6,9,6,8,6,8,6,8,6,8,6,6,8,5,4,4,14
9,12,11,12,12,12,11,13,11,14,11,2,2,2,2,2,1,2,2,4,2,1,2,2,1,2,1,2,0,11
6,12,10,12,12,12,12,12,12,11,13,12,12,3,1,2,2,1,3,2,1,2,3,3,2,2,2,2,0,11
10,13,10,12,12,12,10,14,11,10,13,2,0,4,1,2,2,2,3,1,3,3,2,2,2,3,2,2,2,11
4,12,0,12,13,14,12,12,13,13,2,4,3,2,2,2,3,3,3,2,3,2,4,2,2,3,3,1,4,11
0,15,15,14,13,10,12,9,7,8,8,7,2,15,0,15,14,13,13,12,11,10,7,8,8,8,8,7,7,3
2,15,13,13,9,8,8,7,2,0,0,0,0,14,14,13,13,12,12,8,8,8,8,7,8,7,8,7,8,3
2,0,14,15,13,10,10,7,7,7,0,0,0,0,15,14,13,13,13,11,10,9,8,9,8,8,8,7,7,3
1,0,14,13,11,9,10,7,1,0,1,15,15,12,13,12,12,10,12,10,10,9,8,8,8,7,8,8,6,3
8,1,14,14,13,11,12,9,6,6,3,15,0,15,14,13,12,11,11,10,8,9,8,9,8,9,6,7,6,3
10,11,11,11,12,11,10,0,0,0,0,0,15,5,3,4,4,6,10,12,11,12,12,12,12,11,13,11,12,4
8,13,11,12,12,12,12,11,1,15,1,0,0,0,0,5,5,5,5,5,6,6,12,11,11,12,12,12,13,4
8,12,10,11,12,12,4,15,0,0,0,0,15,0,0,0,8,5,6,4,6,5,11,10,11,10,12,11,12,4
10,10,12,12,11,12,11,1,15,0,0,15,0,0,14,7,5,4,5,4,7,12,11,12,11,13,11,12,12,4
11,11,10,10,13,10,3,0,0,0,0,0,0,15,6,5,5,5,4,6,12,11,12,11,12,10,12,12,11,4
6,8,8,8,6,9,7,12,9,11,6,2,0,2,14,12,12,13,12,12,11,12,12,10,12,10,9,10,7,5
7,7,8,6,9,12,11,11,0,3,2,15,0,15,14,14,12,14,14,12,11,11,11,10,8,10,7,8,8,5
8,8,8,8,5,10,11,10,11,11,14,0,0,0,14,14,13,12,13,12,12,12,10,12,11,7,8,6,8,5
8,8,7,8,6,6,8,11,10,10,11,2,0,0,14,13,12,13,11,13,12,12,10,12,10,11,9,8,4,5
7,7,7,8,6,12,11,10,3,2,15,0,0,0,14,15,13,11,12,11,9,9,8,8,8,8,7,6,7,5
6,6,7,7,8,8,9,10,11,10,12,12,12,14,14,0,15,0,0,15,2,3,7,7,7,8,7,8,9,6
6,7,8,8,8,9,9,11,11,10,12,14,13,15,15,15,0,15,15,0,3,4,5,6,6,7,8,7,9,6
5,9,8,6,9,11,12,11,14,13,15,15,15,15,0,0,1,0,2,4,6,6,8,7,8,8,8,9,9,6
7,8,8,9,9,10,11,12,12,12,13,12,13,14,15,14,0,0,0,0,2,1,5,5,5,6,5,5,9,6
6,8,8,8,9,11,10,12,12,13,12,14,14,15,15,14,1,0,0,2,6,5,7,6,7,6,8,7,7,6
0,0,0,0,0,0,0,0,0,0,0,14,15,4,10,11,11,12,12,12,12,12,10,12,12,12,10,12,12,7
1,13,0,0,14,1,0,9,11,10,9,12,10,14,10,10,13,11,10,12,10,11,10,11,11,10,12,10,13,7
0,0,0,0,14,0,0,0,0,14,0,10,10,12,12,10,12,12,11,12,12,11,12,12,11,10,12,12,10,7
0,0,0,0,15,0,15,2,14,0,9,12,9,14,10,12,10,12,10,12,10,11,12,11,12,12,12,10,12,7
0,14,1,0,0,0,14,1,10,10,11,12,10,13,11,10,13,10,12,10,12,10,12,12,12,10,11,12,10,7
8,7,4,4,2,0,0,14,12,13,10,8,9,6,9,8,12,15,14,15,0,0,0,1,2,5,7,6,7,8
9,6,6,6,2,0,2,15,14,14,10,8,9,9,7,8,10,12,12,14,14,15,0,0,0,1,4,4,6,8
8,7,6,5,2,0,1,0,14,14,10,8,9,8,8,8,9,13,11,15,15,0,14,1,1,2,5,5,8,8
14,8,8,8,6,6,7,5,4,4,3,2,3,1,1,1,0,14,13,12,10,11,10,11,9,13,10,12,10,9
6,5,6,4,2,4,2,0,2,0,0,14,14,9,12,11,10,12,11,10,11,9,12,10,11,11,11,12,11,9
8,9,6,8,6,6,5,4,2,2,1,2,1,1,15,15,12,10,12,10,12,12,11,10,12,10,11,11,11,9
8,6,8,8,7,6,6,5,3,4,2,2,2,1,1,1,15,0,0,12,10,10,12,10,12,10,11,10,10,9
9,7,9,8,8,7,8,6,3,4,2,0,1,0,0,0,10,11,12,11,10,11,11,12,12,12,12,12,14,9
0,3,4,3,4,6,6,6,8,8,8,8,8,8,10,9,12,12,11,14,11,13,13,14,14,15,0,15,0,0
2,6,4,3,6,7,6,8,8,9,11,10,12,12,12,12,12,13,13,14,15,0,14,3,2,3,4,4,3,0
3,4,5,4,6,7,8,6,9,8,10,10,10,12,12,12,12,13,13,14,15,0,15,1,1,4,3,4,4,0
2,4,4,4,4,7,6,9,8,8,10,10,11,10,12,12,12,13,14,14,0,15,1,2,2,5,4,5,4,0
4,4,5,4,6,8,8,8,10,8,10,11,10,12,12,12,12,13,13,14,15,0,15,0,2,3,2,4,2,0
7,7,8,8,7,9,8,9,12,12,14,0,15,0,0,0,15,15,13,10,12,12,9,8,9,8,8,7,8,15
7,8,8,7,8,10,12,13,15,15,15,15,15,15,0,15,14,11,11,12,10,10,8,8,8,8,7,7,6,15
8,7,9,10,12,14,15,0,0,0,14,0,0,0,0,14,15,13,13,12,10,10,8,8,8,9,7,8,7,15
6,7,7,7,8,8,9,8,12,12,0,0,15,0,0,15,0,14,14,13,11,12,10,10,9,8,8,7,8,15
7,8,8,8,8,11,12,15,0,0,0,15,0,0,14,13,0,11,11,11,8,8,8,8,8,8,8,8,7,15
8,3,10,10,9,10,10,10,9,10,10,6,4,4,3,3,4,3,3,3,13,13,14,14,14,13,14,13,14,12
8,10,10,11,10,11,11,10,11,10,11,4,4,4,4,2,5,2,4,3,12,13,12,13,12,13,13,14,13,12
12,10,11,10,11,10,11,12,10,12,11,9,5,3,4,4,4,3,4,2,3,3,13,15,13,13,14,13,14,12
11,9,11,11,9,11,10,0,3,4,4,3,4,3,3,3,3,12,12,12,12,12,11,13,12,14,12,14,12,12
8,12,10,10,11,10,11,11,12,11,12,11,12,4,5,4,4,3,4,4,3,4,13,11,12,13,13,13,14,12
0,3,2,3,12,12,12,13,13,13,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,9,9,9,8,10
1,2,4,2,11,12,12,11,11,12,4,5,5,5,5,6,15,0,0,0,15,15,0,8,9,8,9,8,9,10
1,4,1,3,11,12,12,11,12,13,5,6,6,6,6,8,0,15,15,1,15,0,0,11,8,10,8,9,9,10
2,2,3,4,12,12,12,12,11,12,4,7,5,7,5,6,14,1,0,0,0,0,15,15,15,8,10,8,9,10
4,3,3,2,4,1,13,12,12,13,12,10,6,6,6,6,7,15,15,0,0,0,0,0,0,15,9,10,8,10
3,1,0,15,14,12,12,11,10,10,10,9,9,8,8,8,6,6,6,4,0,0,14,14,14,14,0,15,0,2
1,2,5,4,6,8,8,8,9,9,11,15,14,15,14,14,15,14,13,9,7,8,8,7,6,5,2,2,0,8
0,0,2,1,2,4,3,4,8,6,7,9,8,10,12,11,14,14,14,15,13,14,10,9,8,9,7,8,6,8
12,9,12,10,14,11,14,1,0,0,14,2,0,3,0,1,2,1,1,2,1,2,15,4,0,2,0,0,2,11
2,2,2,0,3,2,3,1,4,3,11,14,12,10,11,12,12,12,10,14,10,12,12,12,10,14,10,10,13,1
2,3,11,12,12,10,10,13,9,10,12,10,12,12,12,12,10,12,10,12,12,10,12,10,10,12,10,11,11,1
2,0,2,1,2,2,2,2,3,2,4,2,2,11,12,10,12,12,12,12,10,11,14,11,11,11,11,12,10,1
2,2,2,2,2,2,2,4,2,4,0,10,12,13,10,11,10,12,11,12,11,12,11,10,11,10,12,12,10,1
2,15,2,1,1,2,2,2,2,3,0,12,10,12,12,11,12,12,12,10,12,11,11,12,11,12,10,10,10,1
4,3,0,1,14,13,12,11,11,12,11,10,10,8,7,7,8,5,6,3,4,3,0,13,14,12,13,14,0,2
4,1,15,14,13,12,12,12,11,12,10,8,8,9,7,8,7,4,5,2,0,0,14,13,13,14,1,0,2,2
6,5,4,4,0,14,14,13,13,12,12,11,10,10,8,8,8,6,5,6,1,1,14,14,14,13,15,15,2,2
6,3,2,1,15,14,14,12,12,12,10,10,10,9,8,8,7,6,5,4,2,1,14,13,13,13,0,1,0,2
4,1,13,15,13,11,11,12,10,11,9,8,8,8,6,6,6,3,4,0,15,15,14,13,13,14,1,1,2,2
1,0,14,14,13,11,11,10,9,8,9,7,8,7,6,2,0,0,0,0,13,13,9,10,9,8,8,8,8,3
14,13,12,12,10,9,9,8,8,9,7,2,2,0,0,15,0,14,13,13,10,11,9,9,8,8,8,8,7,3
1,15,13,12,10,9,8,9,8,8,0,0,0,0,14,14,12,10,11,9,8,8,7,7,8,7,6,7,4,3
0,14,13,10,11,9,10,8,8,9,7,0,1,0,0,15,13,11,11,11,8,8,7,8,8,8,7,8,5,3
1,15,14,15,11,10,9,9,8,8,8,7,1,0,0,0,0,14,11,13,8,9,8,8,8,7,8,8,6,3
10,9,9,10,9,9,9,14,0,0,0,0,0,13,1,1,2,4,4,4,6,7,12,11,12,12,12,12,12,4
9,10,10,10,10,10,10,9,0,0,15,0,0,0,15,15,15,2,2,5,5,5,5,10,8,11,12,11,11,4
10,9,10,9,9,9,0,0,15,0,15,0,0,15,0,14,4,4,4,3,5,6,6,11,11,11,11,10,12,4
9,8,9,8,9,0,0,15,15,0,14,0,15,0,15,15,0,2,4,3,6,5,9,12,11,12,11,11,10,4
10,9,10,10,9,10,10,1,14,0,0,0,0,15,0,15,0,4,4,4,4,5,11,12,11,11,11,11,9,4
8,8,7,8,7,12,12,9,12,10,2,0,2,14,14,13,10,11,10,8,6,7,7,7,7,6,5,4,4,5
6,8,7,8,6,13,11,13,9,4,2,14,15,14,12,13,10,8,8,7,6,7,6,6,5,5,4,4,3,5
8,7,7,6,11,11,10,2,1,0,0,14,0,14,12,12,10,10,8,10,7,8,7,7,7,6,6,6,5,5
8,8,8,7,8,7,11,12,12,11,3,1,2,15,15,15,13,10,10,8,8,8,8,7,7,6,2,2,4,5
8,7,10,11,12,10,11,5,1,1,0,0,15,1,14,0,14,12,11,11,8,9,6,8,7,7,7,7,6,5
9,8,11,9,10,10,10,10,12,10,14,14,14,0,0,0,15,1,2,4,5,5,4,6,6,7,8,6,9,6
8,8,9,8,9,10,11,10,13,12,13,14,14,15,15,0,15,2,2,5,4,5,5,6,5,6,7,7,9,6
9,9,9,10,11,11,11,12,12,13,14,15,14,15,0,0,0,1,2,6,5,5,6,6,6,7,7,6,7,6
7,9,8,9,9,11,12,12,13,13,13,14,14,15,0,0,0,2,2,4,5,5,6,7,6,7,8,6,9,6
10,8,9,10,9,12,11,12,13,12,14,14,14,14,0,15,1,4,3,5,4,6,5,6,5,6,7,6,9,6
1,14,2,0,0,0,0,0,0,0,7,10,10,10,9,10,9,10,10,9,9,11,8,11,9,10,10,10,10,7
0,0,0,0,0,0,0,14,1,0,0,0,14,8,11,10,10,10,10,8,11,10,9,10,8,10,8,10,8,7
0,0,0,0,0,1,0,0,1,0,0,0,1,14,0,1,15,8,10,9,10,10,10,10,10,10,9,9,9,7
0,2,15,0,0,0,0,2,14,10,10,8,11,9,10,9,10,10,10,9,10,8,9,10,8,10,8,9,10,7
0,1,0,0,0,0,0,0,15,0,0,0,0,15,8,9,10,9,9,10,10,9,10,8,10,8,10,9,9,7
0,1,4,2,5,8,7,10,11,11,13,15,15,0,14,15,13,9,9,7,8,8,7,7,6,6,3,4,0,8
1,3,4,5,8,10,9,12,13,13,1,14,14,14,10,10,7,8,8,8,6,7,6,3,4,1,15,0,0,8
0,2,3,4,5,9,9,10,11,12,14,15,15,15,14,13,9,8,8,8,7,7,6,6,6,2,1,1,0,8
1,3,6,6,8,9,8,10,13,13,0,15,0,14,15,15,10,8,8,7,8,7,6,4,5,3,1,1,0,8
0,2,3,4,7,8,9,9,12,13,0,14,14,15,12,13,8,8,7,8,7,6,8,5,6,2,0,0,0,8
6,7,9,8,10,13,12,13,15,14,0,0,1,0,3,2,4,5,5,6,9,0,13,11,11,12,11,10,13,9
5,7,8,8,10,11,12,12,14,14,1,0,1,1,3,3,5,5,6,7,9,8,15,11,12,10,11,10,11,9
8,8,10,11,10,13,13,0,0,15,1,0,1,3,4,4,5,8,8,8,15,12,12,11,10,10,10,10,10,9
6,8,10,10,10,12,11,12,14,15,15,0,1,2,4,3,4,5,4,8,0,0,10,10,11,11,10,11,11,9
8,8,10,9,9,12,12,13,14,15,14,0,15,1,4,4,3,4,6,3,12,12,10,12,12,11,11,11,11,9
3,6,4,5,6,9,9,8,10,10,11,12,12,11,14,12,12,14,13,15,0,0,14,1,2,3,4,4,4,0
4,4,6,6,8,7,8,6,10,10,12,12,12,13,13,12,14,15,14,15,0,15,1,3,4,3,4,4,3,0
4,4,6,5,8,8,8,10,10,11,11,12,12,11,13,12,13,13,14,15,0,15,3,3,4,5,4,5,5,0
4,4,5,5,8,8,9,9,12,11,11,12,12,11,13,12,13,14,14,0,0,0,2,4,3,4,4,5,5,0
3,4,4,4,4,7,6,8,10,10,11,11,12,12,12,12,13,13,12,13,0,0,15,2,2,3,4,3,4,0
3,2,3,2,4,12,13,12,12,11,12,6,5,6,6,5,6,15,0,0,0,0,15,8,8,9,8,9,9,10
2,2,2,1,3,12,13,12,12,12,11,7,5,5,5,5,7,7,15,0,15,0,15,0,14,0,8,8,10,10
3,2,3,2,0,12,12,12,11,11,12,5,4,6,5,5,11,0,15,0,15,15,0,9,9,9,9,8,9,10
2,2,2,3,13,12,12,12,12,12,6,5,5,5,6,7,14,0,0,0,15,0,15,8,8,10,9,9,9,10
2,2,3,2,13,11,12,10,12,11,2,5,5,5,5,4,6,15,0,0,0,0,0,0,1,9,8,9,8,10
9,10,9,10,10,10,12,10,14,15,0,0,15,2,0,15,2,0,0,1,0,0,1,0,1,0,2,2,1,11
8,12,8,10,10,10,10,12,9,10,10,0,15,2,0,0,1,0,0,1,0,1,1,0,1,0,1,2,0,11
12,12,12,10,13,14,0,14,1,1,0,3,0,2,2,2,1,3,3,1,4,2,4,1,2,2,2,1,4,11
12,10,13,11,13,0,0,0,0,1,0,0,1,0,2,0,2,2,2,1,3,3,1,4,2,5,2,2,4,11
14,9,12,11,10,14,12,0,15,15,2,0,1,0,3,2,3,1,2,3,1,2,2,2,3,2,2,2,3,11
8,11,11,10,11,10,10,10,8,8,7,5,5,5,4,3,4,3,3,2,14,14,13,13,12,13,13,13,14,12
10,9,10,11,10,10,11,9,4,4,3,4,3,4,2,3,2,3,1,11,12,10,12,12,12,12,13,12,13,12
10,10,10,11,9,12,13,11,6,7,4,5,4,4,3,3,3,2,2,11,13,12,12,12,12,13,12,12,14,12
10,12,10,10,12,10,11,10,8,7,5,4,5,4,4,4,2,3,2,0,12,13,11,13,12,13,12,13,13,12
10,10,10,10,10,10,10,11,9,8,4,4,5,3,4,3,4,2,3,3,13,12,13,12,12,13,13,13,13,12
5,6,8,9,11,12,11,14,15,0,15,14,15,14,12,12,9,8,8,7,7,8,6,7,7,6,5,5,5,15
6,8,9,9,10,12,11,13,14,14,0,15,15,15,14,13,10,8,8,8,7,8,6,7,7,6,6,5,4,15
8,8,8,9,9,10,9,12,11,12,10,14,14,1,13,0,13,15,12,13,15,12,14,11,13,10,11,10,8,15
5,7,8,8,10,11,12,14,0,0,15,15,15,15,12,12,10,10,9,8,8,9,6,8,7,7,5,5,3,15
6,7,7,8,6,9,7,9,12,10,11,13,12,14,0,15,15,15,14,0,14,15,0,12,11,14,10,10,8,15
9,6,8,8,8,8,6,8,8,9,6,8,6,9,6,8,6,9,6,8,8,6,8,8,6,6,6,6,7,14
8,10,6,8,8,9,8,8,8,8,8,8,10,6,9,10,6,9,8,8,8,8,8,8,10,6,9,8,8,14
8,8,6,8,8,8,8,8,8,6,10,6,8,8,8,8,6,9,8,8,8,6,8,8,6,9,6,8,8,14
9,6,8,8,8,6,8,8,8,8,8,8,6,10,6,6,10,8,8,8,8,8,8,8,8,8,8,8,6,14
6,10,6,8,8,8,6,8,8,9,6,8,6,10,6,8,8,8,6,8,8,6,10,6,8,8,8,8,6,14
0,2,14,0,0,1,0,0,0,0,2,14,1,14,2,0,0,1,0,0,0,0,0,1,0,0,0,0,15,13
0,0,0,2,14,1,0,0,0,0,2,14,0,0,0,0,0,0,14,2,0,0,0,0,0,0,0,14,14,13
2,14,2,1,14,1,0,0,14,0,0,14,1,14,0,0,0,0,1,14,1,14,1,14,1,14,5,6,15,13
2,14,1,0,0,0,2,14,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,14,2,0,0,13
0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,13
0,0,1,0,4,2,4,2,5,4,4,12,12,12,10,10,12,10,12,10,12,12,10,12,11,12,12,11,13,1
0,1,3,3,2,4,5,2,5,4,8,13,11,12,12,12,12,14,12,12,12,12,10,13,12,10,13,12,12,1
2,2,2,4,1,4,2,6,3,12,10,12,12,12,11,12,10,12,11,12,12,12,9,12,10,13,11,12,11,1
1,4,3,2,4,4,2,5,3,4,2,4,4,13,10,12,10,12,12,10,12,11,13,10,12,10,13,12,12,1
2,5,2,3,4,4,4,11,10,12,10,12,11,10,12,12,12,10,12,12,12,10,13,11,12,10,12,12,12,1
2,4,4,4,5,7,7,10,10,10,11,11,11,12,12,12,13,14,15,15,0,1,5,3,4,3,4,4,3,0
4,4,6,7,10,8,10,9,11,10,12,11,12,11,12,12,13,0,0,15,1,1,3,2,4,3,4,4,2,0
3,4,5,6,6,9,8,10,10,11,10,11,11,10,12,10,14,13,14,0,0,15,2,3,2,4,3,4,3,0
4,5,5,6,7,9,8,10,10,11,11,11,11,12,12,11,13,15,14,0,0,1,2,3,4,4,4,4,4,0
2,5,5,6,7,8,10,8,10,9,12,11,11,12,12,12,12,13,13,0,0,0,1,3,3,2,4,3,5,0
4,3,15,0,13,12,13,12,10,12,9,9,8,8,8,8,7,5,6,3,14,15,14,14,14,14,15,15,14,2
3,15,15,14,14,12,13,10,11,11,10,8,9,8,7,8,7,4,4,2,0,15,14,15,14,14,14,14,0,2
3,1,15,0,15,14,15,14,13,13,10,12,10,12,8,9,7,8,8,6,2,2,15,14,14,13,15,13,0,2
5,3,2,0,0,14,14,13,13,12,12,10,10,10,9,9,8,8,7,5,2,2,14,14,14,15,14,15,15,2
6,2,0,0,15,14,15,12,12,12,11,10,10,9,9,9,9,7,8,7,4,3,1,15,0,14,14,14,14,2
6,2,0,0,14,14,13,12,11,10,10,8,9,8,4,3,0,0,0,15,14,14,12,10,11,8,9,8,8,3
3,1,15,0,14,14,14,11,10,11,9,9,8,9,6,7,1,15,0,1,14,0,14,10,11,9,8,8,7,3
1,15,15,15,13,11,11,10,8,9,8,8,9,5,0,0,1,15,15,15,13,14,10,10,10,8,7,8,8,3
2,1,14,0,13,11,12,11,9,9,8,8,7,8,2,1,0,15,0,15,13,14,10,10,9,8,8,8,8,3
4,1,15,0,15,13,13,12,11,10,9,8,8,9,6,4,1,15,0,15,14,14,11,9,10,8,8,8,8,3
10,0,1,0,0,0,0,14,0,0,12,5,5,2,4,4,4,12,12,12,11,12,12,11,11,13,10,11,13,4
12,10,0,0,0,15,0,14,15,15,6,2,4,4,4,3,6,12,10,11,11,11,11,12,11,11,12,11,12,4
10,12,9,3,15,0,0,15,0,0,14,3,4,4,3,4,4,4,4,12,12,11,12,12,12,11,12,10,13,4
12,10,11,14,1,0,0,0,0,0,14,0,6,3,4,3,4,4,4,12,13,12,11,12,11,11,11,11,11,4
12,10,12,12,10,1,0,15,0,0,15,0,14,5,5,4,4,4,4,0,11,11,12,10,10,12,11,11,11,4
8,7,7,6,11,12,11,12,10,10,1,15,0,0,15,0,14,14,15,13,12,11,8,8,8,8,7,8,8,5
8,6,8,6,8,13,12,13,11,11,2,14,0,0,0,15,0,14,14,12,12,12,9,8,8,7,8,7,9,5
8,7,8,8,6,11,10,11,12,10,1,0,0,0,15,0,0,14,0,14,11,12,9,8,8,8,8,8,8,5
7,8,8,7,8,8,9,12,10,11,11,3,2,15,0,0,0,14,15,13,0,12,12,8,7,8,8,8,7,5
8,8,8,7,9,6,7,10,12,13,10,12,10,2,0,1,0,0,0,15,14,13,13,10,10,8,8,9,8,5
7,8,9,9,10,10,11,9,12,10,13,12,14,15,15,0,15,0,0,2,4,4,4,6,6,8,8,8,8,6
9,7,10,10,10,9,9,12,11,12,12,14,15,0,0,15,1,0,2,2,5,4,6,7,8,7,8,8,8,6
8,8,9,9,10,10,10,10,10,11,13,14,14,0,15,0,15,2,1,2,4,4,6,8,6,9,8,9,10,6
9,7,9,9,10,10,10,13,11,12,11,14,14,15,0,0,0,0,1,2,4,3,5,7,6,8,8,9,10,6
7,8,7,9,8,9,10,9,10,10,13,12,13,14,15,15,0,0,0,2,4,3,5,6,6,6,8,9,11,6
0,1,15,0,0,0,0,0,0,0,0,15,0,15,7,10,9,13,11,9,12,11,10,12,10,11,9,10,11,7
15,1,15,0,0,0,1,15,0,15,1,14,0,0,10,8,12,8,10,10,12,9,12,9,10,10,11,10,11,7
0,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,11,11,13,9,12,9,10,10,10,8,7
0,0,0,0,0,0,0,14,0,0,14,0,2,10,10,10,12,10,12,9,11,10,10,10,11,10,11,11,8,7
0,0,0,0,0,0,0,0,0,0,0,0,0,12,10,10,10,10,10,11,10,10,10,10,9,12,8,12,8,7
2,3,5,6,6,8,8,8,10,10,13,14,14,0,14,14,14,10,10,8,8,8,7,8,7,4,2,0,1,8
5,6,7,6,8,8,8,8,10,10,12,14,14,15,14,15,14,15,15,11,9,9,6,8,6,6,2,2,2,8
2,6,7,6,8,8,7,9,12,12,15,15,14,15,15,14,14,11,11,9,8,8,8,6,6,3,4,3,0,8
0,1,1,1,4,8,7,8,9,8,9,13,13,15,15,15,14,10,11,8,8,8,8,7,7,3,1,0,2,8
0,0,2,4,5,8,7,9,10,9,14,15,15,14,14,14,13,10,10,8,8,8,7,5,5,2,1,0,2,8
6,8,8,8,9,10,10,11,13,13,14,0,15,1,2,2,3,3,3,4,10,9,11,10,11,10,12,12,10,9
5,8,9,9,11,12,12,11,14,15,15,0,0,0,3,3,4,4,3,6,11,11,11,11,11,11,12,11,11,9
3,6,8,7,8,9,9,10,12,11,14,0,0,15,4,3,5,3,4,12,11,10,12,11,11,11,12,12,12,9
4,6,7,7,8,9,9,13,10,12,12,14,14,0,1,2,5,3,4,12,10,11,11,10,11,10,12,11,13,9
3,5,6,6,9,11,10,11,12,12,14,14,0,0,0,2,4,4,3,6,11,10,12,9,10,10,12,11,11,9
4,3,3,3,3,13,13,12,13,12,12,6,6,7,7,7,7,0,0,0,0,0,15,0,0,14,8,9,9,10
4,3,5,4,4,4,4,13,12,13,12,13,12,6,6,7,6,7,7,6,15,0,15,0,0,0,15,0,8,10
6,3,4,4,4,3,3,12,14,13,12,12,12,6,6,6,6,7,6,14,0,0,14,0,15,0,10,9,9,10
4,4,4,4,4,0,13,11,13,12,12,8,6,6,6,6,14,1,0,0,0,15,0,9,9,9,9,9,9,10
8,4,3,4,3,14,13,13,12,13,12,6,6,6,7,7,0,15,0,0,0,0,15,8,8,9,9,9,9,10
14,12,11,11,10,11,10,10,8,9,8,7,7,6,5,5,4,3,4,2,1,0,0,14,15,13,13,13,14,12
12,11,11,10,11,10,10,9,8,8,5,6,6,4,5,4,4,3,3,1,14,14,13,14,12,13,14,13,13,12
12,12,10,12,9,11,9,11,8,7,8,5,5,4,4,4,4,4,2,3,14,15,13,13,13,13,14,14,13,12
11,10,10,10,10,10,10,8,6,7,5,5,5,5,3,4,4,1,2,14,13,14,13,13,13,13,13,14,12,12
11,10,11,12,10,11,10,11,8,8,6,6,5,5,4,4,3,4,3,3,2,0,14,12,13,12,14,13,14,12
10,13,0,0,0,0,0,2,0,4,0,3,3,2,2,3,2,3,3,2,3,2,2,3,2,4,2,2,5,11
12,12,12,12,12,0,14,2,15,1,2,1,0,3,2,2,0,4,1,5,2,2,2,2,4,0,4,1,3,11
12,12,12,11,14,12,12,15,1,0,1,1,0,3,1,2,2,2,1,5,2,2,2,2,1,3,0,2,1,11
12,12,12,11,14,12,13,12,0,15,2,0,2,0,4,2,0,4,2,3,0,2,2,2,2,2,2,2,1,11
12,12,12,11,14,0,0,0,0,15,2,0,0,2,2,0,3,1,2,4,1,3,1,4,2,2,4,2,4,11
1,0,0,0,0,0,1,0,0,0,0,0,0,2,14,0,0,0,2,14,1,0,0,0,0,0,0,14,2,13
1,14,2,0,0,0,0,0,1,0,0,0,0,0,0,14,2,0,0,0,0,0,2,14,0,0,0,1,14,13
1,0,0,0,0,1,0,0,0,2,14,1,0,0,1,0,0,0,0,0,0,2,14,1,0,0,0,14,1,13
0,2,14,1,0,0,0,0,1,1,14,2,0,0,0,2,14,1,0,0,0,0,0,1,0,0,0,14,0,13
14,2,0,0,2,14,14,2,0,14,2,0,14,2,0,0,0,0,14,2,0,0,0,0,0,0,0,15,2,13
8,8,8,8,6,9,8,8,6,9,6,9,8,8,8,5,10,5,8,6,9,8,8,8,6,8,8,11,15,14
8,8,8,9,6,8,6,10,8,8,8,8,10,6,9,8,8,8,6,10,8,8,8,8,8,6,9,8,8,14
8,8,8,8,8,6,8,9,6,8,8,8,10,6,9,8,8,8,8,8,8,6,9,6,8,8,8,12,2,14
8,8,6,8,8,8,8,8,8,8,8,8,10,6,9,6,10,6,8,8,8,8,6,9,8,8,8,6,8,14
8,8,8,8,10,6,8,8,8,6,10,6,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14
6,8,8,7,9,9,8,11,11,13,14,14,15,14,15,15,0,14,0,14,15,0,14,14,13,13,10,10,11,15
6,7,8,6,9,9,8,9,9,10,10,12,12,14,14,15,14,0,0,15,14,14,0,14,14,14,13,12,8,15
10,7,10,9,10,10,12,10,13,13,14,14,14,15,15,15,15,14,0,14,15,13,15,11,14,9,10,9,7,15
9,8,9,8,10,11,12,12,14,14,0,14,0,14,15,14,14,14,13,14,11,13,10,9,8,10,7,8,8,15
8,9,10,11,9,12,12,15,14,0,14,15,14,14,12,13,12,8,9,7,8,8,8,8,8,7,7,7,4,15
2,5,2,5,1,3,2,2,4,1,6,14,14,12,10,12,12,11,11,12,12,12,11,11,12,10,12,12,10,1
4,2,2,4,1,5,3,11,9,12,10,12,12,9,11,10,14,11,10,14,10,12,10,12,10,14,10,12,12,1
2,4,4,5,13,10,9,13,10,13,10,12,10,13,10,10,13,10,13,12,12,10,13,10,12,10,13,10,10,1
2,1,0,1,15,14,13,14,10,12,10,9,9,9,8,7,8,7,8,6,3,1,14,0,15,0,15,15,0,2
1,0,15,0,13,12,12,11,11,10,8,9,9,9,7,7,8,6,7,3,14,15,15,15,15,15,15,15,14,2
0,1,0,15,12,11,12,9,11,10,10,8,8,9,6,8,4,15,15,14,15,15,14,0,14,2,14,0,0,2
2,1,15,0,14,12,12,12,11,11,0,8,8,8,8,8,7,8,6,7,1,0,14,0,0,14,0,0,15,2
2,0,15,15,12,14,12,11,10,10,8,8,8,9,8,8,8,7,8,3,15,14,15,15,14,1,15,0,15,2
15,15,12,12,10,9,10,8,8,8,8,7,6,0,15,15,0,15,15,10,10,9,8,8,7,9,7,8,7,3
0,13,14,12,10,8,8,8,8,8,8,8,8,8,4,1,14,0,14,1,13,13,14,11,11,8,8,8,8,3
15,14,13,13,14,11,12,11,9,9,8,8,7,8,6,5,15,2,0,0,14,15,0,12,12,8,8,8,8,3
0,0,12,13,11,9,9,8,8,7,7,0,1,15,14,15,12,10,12,10,9,9,8,8,8,8,7,8,6,3
0,15,13,12,11,10,8,10,9,9,8,8,7,7,6,4,15,0,15,1,13,15,12,9,9,10,7,8,7,3
10,8,10,10,9,10,9,1,0,0,0,15,0,15,0,15,5,3,4,2,1,10,13,10,12,12,12,11,13,4
10,10,9,10,9,4,15,0,15,0,15,0,0,0,0,15,0,15,0,7,2,3,2,8,11,9,12,11,11,4
10,9,8,8,14,0,15,0,15,15,15,0,0,15,15,14,5,1,2,2,8,9,12,10,11,12,12,12,14,4
9,8,8,9,9,8,8,15,0,0,0,0,14,0,0,0,0,15,0,12,6,7,2,12,12,10,12,11,14,4
10,8,9,10,8,2,0,0,15,0,0,15,15,1,15,15,0,0,0,9,4,5,3,10,12,12,10,12,9,4
9,7,8,7,8,8,7,9,13,11,12,8,14,1,15,0,0,0,0,2,10,11,11,7,8,7,8,7,8,5
8,7,8,8,8,8,7,11,10,0,14,0,0,0,15,0,0,0,0,7,13,12,12,8,8,6,8,6,8,5
8,7,8,8,10,10,11,5,1,0,0,0,0,14,12,12,13,10,8,9,7,8,7,8,6,8,5,7,6,5
8,7,8,7,9,11,10,12,10,10,1,1,0,0,0,2,14,14,13,14,11,11,11,11,10,9,8,8,8,5
8,7,8,8,8,9,9,11,1,15,2,0,0,1,15,15,13,11,13,8,13,12,7,8,7,7,6,6,4,5
8,10,8,9,8,8,8,8,12,10,11,12,12,10,13,13,15,14,15,2,0,15,2,7,6,3,5,5,6,6
9,11,8,8,9,11,11,9,12,10,11,12,12,14,15,15,0,15,0,15,0,1,6,3,4,4,5,5,7,6
8,9,8,9,9,10,10,10,11,10,14,12,12,11,13,0,15,0,1,15,2,1,7,5,6,5,8,6,7,6
9,7,9,9,9,9,9,9,10,11,9,13,14,15,15,0,14,1,0,0,2,5,4,5,6,7,6,6,8,6
9,7,10,9,9,9,10,8,11,11,10,12,11,14,15,14,0,0,0,0,2,2,5,7,6,8,7,7,7,6
0,0,0,0,0,0,15,1,0,6,14,9,11,11,11,10,12,10,10,11,11,10,10,10,10,10,11,10,10,7
1,15,0,0,15,1,0,0,8,8,6,10,11,10,10,10,13,10,12,11,10,10,12,10,10,11,12,12,10,7
0,1,15,0,0,0,0,0,6,8,8,8,10,13,10,11,10,10,11,13,10,12,10,11,11,11,11,10,11,7
1,14,0,15,2,0,15,1,0,15,5,10,10,12,10,12,10,11,11,10,11,12,9,12,12,11,10,12,9,7
0,15,1,0,0,0,1,14,0,7,12,10,11,10,12,10,12,12,12,10,12,11,11,11,10,12,11,10,12,7
1,6,6,7,6,9,9,13,13,13,13,14,13,0,13,13,8,8,8,8,7,6,2,4,3,1,1,1,1,8
2,6,4,4,8,10,10,12,14,14,0,15,15,15,11,12,9,8,7,8,6,7,4,3,3,2,0,0,0,8
2,6,6,6,7,9,9,12,11,12,14,14,14,14,14,14,10,6,8,8,6,6,3,4,3,2,1,2,15,8
5,7,6,6,9,7,10,12,14,14,14,14,14,15,10,12,8,8,8,6,7,6,6,2,2,1,0,0,0,8
0,2,1,3,5,6,6,8,9,7,10,13,12,15,14,14,13,15,15,12,8,8,7,8,7,8,6,4,5,8
8,8,10,11,11,11,10,12,13,1,14,1,0,2,4,4,4,3,4,0,12,11,13,10,12,9,12,11,11,9
7,8,7,8,7,11,10,10,13,13,15,15,15,0,4,3,5,4,4,3,9,10,9,12,12,11,11,11,11,9
5,6,8,8,7,10,10,10,12,12,14,0,0,15,4,4,4,4,5,2,12,10,12,11,11,10,12,11,13,9
6,6,9,8,8,8,8,11,13,13,15,15,0,14,0,0,1,3,4,4,5,0,10,12,11,12,11,10,13,9
7,6,7,7,8,8,9,9,14,12,14,0,0,15,2,4,1,3,2,7,13,12,10,12,12,10,12,11,12,9
6,6,5,8,6,8,7,12,10,12,10,13,11,13,12,12,11,15,15,0,1,1,0,1,1,2,4,3,4,0
4,3,6,7,8,8,6,11,9,10,10,12,12,12,12,13,13,15,14,0,0,1,1,3,2,2,3,2,2,0
6,4,9,9,9,10,11,9,14,0,9,14,12,15,15,0,14,1,1,3,2,3,2,4,2,5,4,4,4,0
8,7,9,9,10,11,11,12,11,12,13,14,14,1,0,0,15,2,1,2,1,2,3,2,2,5,4,4,5,0
4,6,8,8,11,10,12,9,10,11,12,11,8,14,15,14,0,0,0,1,1,1,2,3,4,2,4,4,4,0
4,3,5,0,13,13,14,5,6,6,7,7,8,8,0,0,1,0,0,0,0,0,1,1,0,9,9,9,8,10
1,1,4,3,2,12,12,12,12,13,13,5,5,4,6,5,7,6,0,14,0,15,0,0,0,0,8,9,7,10
1,5,1,1,11,13,12,12,14,5,6,5,5,6,12,15,0,0,0,0,15,0,0,8,9,8,9,9,8,10
4,2,10,13,11,12,12,14,6,6,6,6,6,7,15,0,15,0,0,0,0,0,0,8,8,8,9,9,8,10
2,2,4,3,11,11,13,10,13,14,5,7,6,7,8,7,15,0,0,0,15,1,14,2,7,10,8,8,9,10
7,11,8,8,10,8,9,8,9,9,8,7,5,4,4,4,4,2,3,1,12,12,12,13,12,14,15,14,14,12
12,8,9,9,8,9,9,10,7,8,5,4,5,2,2,2,3,2,3,13,12,11,14,14,14,13,14,13,14,12
9,9,10,10,9,8,8,9,7,7,3,3,2,6,5,5,3,15,13,12,13,14,13,14,14,14,14,14,6,12
10,10,8,9,9,9,10,7,2,3,2,2,4,2,4,3,1,12,11,12,12,12,12,13,13,13,13,14,8,12
11,12,10,10,10,10,9,10,8,8,7,5,6,5,5,5,5,2,2,14,15,14,14,14,14,13,15,14,13,12
12,7,12,9,13,10,11,11,1,0,2,0,1,0,3,0,1,1,0,14,2,0,1,0,15,2,0,15,2,11
9,11,10,10,11,12,10,12,6,8,6,2,0,2,0,1,0,0,0,1,0,2,15,2,2,2,0,1,0,11
9,8,10,10,8,11,11,11,7,8,1,14,0,15,1,15,1,0,0,0,0,2,13,2,0,0,0,1,15,11
0,8,10,10,9,11,11,11,8,8,1,0,1,1,0,0,1,15,0,0,0,0,1,15,0,0,0,1,0,11
9,12,7,10,12,10,10,10,10,7,0,0,1,0,0,0,1,0,0,1,0,0,4,15,15,1,15,1,15,11
7,8,8,8,9,11,10,14,0,15,15,15,14,15,13,13,10,9,9,7,8,7,7,7,7,6,6,7,5,15
7,9,9,10,12,13,12,0,14,14,0,14,14,11,11,10,9,8,9,7,8,8,6,8,7,6,6,6,7,15
8,7,9,9,9,11,10,13,15,14,14,15,14,14,12,13,10,8,8,7,8,7,7,7,7,6,6,6,5,15
8,8,8,8,9,12,12,13,14,15,0,15,0,14,15,15,14,12,11,9,7,7,8,8,8,6,8,8,6,15
6,8,8,8,10,9,10,9,12,11,15,14,0,14,14,15,14,14,14,10,6,7,7,7,6,8,7,6,8,15
8,8,8,8,8,8,9,6,8,8,8,8,6,8,8,8,8,6,8,8,6,8,8,6,9,6,8,6,10,14
8,8,8,8,8,8,8,8,8,6,10,6,8,8,8,8,8,8,6,10,6,8,8,8,8,8,8,6,8,14
8,8,6,9,6,8,8,8,8,6,10,6,9,6,8,8,8,8,6,8,8,6,10,6,8,8,6,8,7,14
8,8,8,8,8,8,8,8,8,8,8,8,8,6,9,9,6,10,8,8,8,8,8,8,6,10,6,8,6,14
9,6,8,8,8,8,6,8,8,8,8,8,8,8,8,9,6,10,8,10,6,8,8,8,8,8,6,8,8,14
0,0,0,0,2,15,0,0,0,0,0,0,0,2,15,0,14,0,15,2,0,0,15,6,8,8,8,8,1,13
1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,2,14,0,2,14,0,1,13
0,2,14,0,0,1,1,14,2,0,0,0,0,2,14,0,2,14,14,2,0,0,0,1,0,2,14,15,2,13
0,0,0,14,2,0,0,0,0,2,14,1,14,2,0,0,0,0,1,0,0,1,0,0,1,0,0,2,1,13
0,0,1,0,0,0,2,14,1,2,14,1,0,1,14,2,13,2,2,14,2,14,1,0,14,1,9,14,8,1
1,15,3,0,4,2,4,4,4,4,11,10,10,14,11,13,10,13,11,13,10,12,12,10,12,10,10,10,10,1
0,0,0,0,0,14,0,0,0,14,0,0,1,14,0,0,0,0,14,2,14,1,14,0,1,14,2,0,0,13
2,4,13,10,10,14,10,12,12,12,10,12,12,12,12,13,12,13,10,12,13,14,11,12,14,10,13,10,14,1
12,10,13,13,10,12,12,12,12,12,10,13,10,12,12,12,12,10,12,12,12,10,12,12,12,12,12,10,14,1
12,12,10,10,14,10,10,12,10,12,10,13,12,12,12,10,14,10,12,12,12,12,12,12,12,10,14,10,14,1
14,10,10,12,12,12,12,12,12,10,14,10,12,12,12,12,12,10,12,12,12,12,12,12,12,12,12,11,12,1
4,13,10,12,12,12,12,10,10,12,12,12,13,10,12,10,14,10,13,10,12,12,12,12,10,14,12,12,10,1
14,13,11,13,10,10,12,8,10,10,9,9,9,8,8,8,9,6,2,15,0,0,15,0,15,1,0,15,0,2
13,13,11,12,11,10,11,11,9,9,10,8,8,9,8,8,9,7,8,0,0,0,1,15,0,14,0,0,0,2
6,2,3,3,2,1,0,0,14,14,12,10,12,10,9,9,8,9,8,8,8,8,8,0,0,0,0,15,0,2
6,2,3,3,2,0,0,0,13,14,10,12,11,10,9,9,7,9,8,9,8,8,1,15,15,1,15,0,0,2
12,7,3,4,2,2,1,0,15,15,12,10,11,10,10,9,8,9,8,9,8,7,10,0,0,0,0,0,0,2
8,2,1,2,0,14,14,13,10,11,9,8,8,8,8,8,0,0,1,0,0,0,15,12,12,9,8,9,7,3
6,2,2,1,1,14,15,12,9,9,8,8,8,8,1,1,0,15,15,15,11,12,8,8,9,7,8,7,7,3
6,2,1,0,15,0,15,14,12,13,10,10,9,9,8,9,8,8,8,0,0,15,0,15,14,14,11,12,10,3
9,2,15,1,15,15,15,13,10,12,9,8,8,8,7,8,0,15,15,14,11,11,10,8,8,8,7,7,6,3
10,2,15,0,14,15,15,12,11,10,9,8,8,7,8,1,15,0,0,15,12,13,9,9,9,8,8,7,8,3
10,10,12,12,14,0,14,0,0,0,2,4,4,3,4,4,3,4,8,11,11,11,12,11,12,10,11,10,13,4
10,10,11,10,12,14,15,15,0,15,2,4,3,4,4,4,4,8,12,12,10,12,12,11,12,12,12,11,11,4
11,11,12,14,13,0,15,0,0,0,2,4,2,5,4,4,4,4,5,11,10,10,12,11,11,11,11,11,12,4
11,10,11,11,15,15,0,15,0,15,1,4,3,4,4,4,4,4,4,5,12,11,12,10,12,10,12,12,12,4
10,12,9,10,13,0,0,0,0,15,2,4,4,4,4,4,4,12,11,12,11,12,10,11,11,11,11,11,10,4
7,7,8,6,8,11,10,8,11,11,1,2,0,1,0,0,15,15,15,14,10,10,10,8,9,7,8,7,8,5
7,7,7,7,7,11,10,13,10,11,11,2,1,0,0,15,0,14,14,12,10,10,7,9,8,8,6,7,7,5
8,8,7,7,10,12,12,10,11,12,2,15,0,0,15,0,14,14,13,10,9,9,8,8,8,7,7,6,8,5
7,8,8,8,12,10,12,11,1,1,2,15,1,15,0,15,0,13,13,10,10,9,8,8,8,8,6,6,7,5
7,8,10,12,9,13,12,10,1,2,15,1,0,0,0,15,14,13,12,10,8,8,9,7,8,7,7,8,6,5
7,6,8,7,8,9,8,9,10,9,12,11,12,12,14,14,15,0,15,0,2,3,4,6,6,7,7,6,9,6
7,8,8,8,9,9,9,10,10,10,11,13,12,14,14,15,15,0,0,2,5,4,6,6,6,8,8,8,11,6
6,8,6,8,7,9,8,9,11,10,12,11,12,10,14,13,15,0,15,1,2,3,5,6,6,8,8,8,9,6
7,8,8,8,8,8,8,9,10,10,10,12,12,12,14,13,15,0,0,0,2,3,2,6,4,7,7,7,8,6
8,11,8,10,8,10,10,11,11,10,12,14,14,0,0,15,1,2,3,4,5,6,7,7,6,8,8,8,11,6
15,1,0,1,0,0,0,1,0,15,2,0,0,1,0,2,10,11,10,9,10,10,9,12,11,10,12,10,10,7
15,1,15,0,1,15,0,1,0,0,0,1,15,1,11,10,12,10,11,10,11,12,9,12,12,10,12,11,10,7
0,0,0,0,2,15,0,1,0,1,0,0,12,12,10,12,12,10,12,10,12,10,10,10,11,11,10,11,11,7
0,1,0,0,14,2,0,2,15,11,13,10,12,12,11,9,13,12,11,10,10,10,10,11,11,12,12,10,12,7
0,15,1,15,1,15,2,14,2,0,1,10,11,10,11,10,12,11,12,10,10,12,10,12,10,12,10,11,10,7
0,14,1,0,2,4,3,6,7,6,8,9,10,10,14,13,15,13,13,10,8,8,8,6,6,2,2,1,1,8
0,1,2,2,4,5,5,8,8,8,11,12,13,13,14,14,14,12,12,9,8,7,9,6,5,3,2,4,0,8
1,3,5,4,6,8,7,8,11,10,13,14,14,0,14,15,11,9,10,9,7,8,7,5,4,4,1,1,0,8
0,0,3,2,5,6,5,9,7,8,9,11,10,13,15,15,15,13,13,10,8,9,7,7,7,6,1,1,0,8
14,1,0,0,1,3,3,5,7,6,7,9,9,12,14,13,15,14,15,13,9,9,8,8,8,6,2,3,0,8
5,6,7,8,6,9,8,9,12,11,13,15,14,0,0,1,3,4,4,4,12,11,11,12,11,11,12,11,12,9
1,5,6,7,6,9,10,12,12,12,14,15,0,15,3,4,4,4,4,3,11,12,12,12,13,10,13,11,12,9
4,6,7,8,7,9,9,10,12,12,12,14,14,14,1,15,3,4,3,4,3,4,11,10,12,12,12,12,12,9
1,5,5,5,7,8,8,9,10,12,11,14,14,15,0,1,4,4,3,4,12,12,11,12,11,12,12,12,10,9
3,4,5,5,7,8,8,9,11,11,12,13,14,14,0,0,4,3,4,3,11,12,10,12,10,14,11,12,11,9
2,1,2,3,2,12,12,12,13,13,8,6,6,6,6,7,8,15,0,15,0,0,0,0,0,8,9,10,8,10
1,0,1,1,2,12,12,12,12,13,7,6,6,6,7,7,15,0,0,0,0,0,14,0,8,9,9,9,7,10
2,2,2,3,3,12,12,12,13,13,6,8,6,7,6,7,15,15,0,15,0,15,0,8,8,9,8,9,8,10
6,1,3,0,3,12,13,12,13,13,8,6,7,7,6,7,0,0,0,0,0,15,0,10,8,8,9,8,9,10
0,2,2,2,3,2,13,12,13,12,13,6,7,6,7,6,7,15,15,0,15,15,0,0,0,8,9,8,9,10
9,10,9,9,8,9,9,7,8,8,7,6,4,6,3,4,3,15,0,13,15,15,15,14,14,14,14,14,13,12
9,10,10,9,10,8,10,9,10,8,10,8,8,6,3,3,4,3,4,3,0,15,14,14,14,14,14,15,14,12
9,10,9,10,6,10,9,8,9,8,10,7,8,4,3,4,2,4,3,3,14,14,12,14,14,15,15,14,15,12
9,8,9,9,8,8,9,8,9,8,9,7,8,4,3,4,2,3,2,14,14,15,14,15,14,14,14,0,13,12
9,9,9,9,8,9,8,9,8,9,9,6,9,8,8,7,2,3,3,2,2,2,13,15,15,15,14,14,14,12
1,9,11,11,9,12,10,12,12,11,13,0,0,0,2,1,1,0,1,1,2,1,2,2,0,3,0,2,2,11
10,9,10,8,12,8,12,9,12,14,2,0,2,14,2,0,2,0,0,2,0,0,2,1,0,1,2,0,1,11
11,8,13,11,9,12,12,9,14,1,14,2,1,0,2,2,0,1,1,2,1,0,1,2,0,2,0,1,1,11
11,7,12,10,10,11,12,12,12,14,1,0,1,1,1,0,3,0,0,2,0,0,2,0,1,1,2,0,2,11
13,10,14,12,0,0,2,0,2,1,0,2,0,2,1,1,1,1,0,4,0,0,2,0,2,0,2,0,2,11
3,5,5,6,6,7,8,8,8,8,10,8,8,10,8,10,12,12,13,14,15,15,14,0,0,0,0,0,4,0
5,8,6,7,8,8,8,9,8,8,8,9,9,12,12,12,12,14,14,14,0,15,0,0,0,1,2,2,3,0
2,3,4,3,6,5,6,8,7,7,9,8,9,9,11,9,11,12,12,12,13,13,14,15,0,15,2,2,2,0
2,4,4,5,6,6,8,6,9,8,9,8,10,9,12,11,11,12,12,13,14,14,0,0,0,1,1,2,4,0
2,3,3,4,5,6,6,7,8,8,8,9,9,9,11,12,10,12,12,13,13,14,14,0,0,0,1,0,3,0
5,6,6,7,7,8,8,8,10,10,12,13,14,0,14,15,0,15,0,14,12,11,9,8,8,8,7,7,7,15
7,7,8,7,9,10,10,14,14,15,15,15,0,15,15,15,14,12,12,9,9,9,8,8,7,8,6,8,6,15
3,5,6,6,8,8,8,9,9,10,11,13,14,14,15,15,0,0,15,0,14,13,10,9,8,8,7,8,7,15
8,7,8,8,9,12,10,12,13,13,15,0,15,0,0,15,15,14,14,13,10,10,8,8,8,8,8,6,7,15
4,4,6,6,7,8,7,8,11,10,12,14,14,0,0,15,0,15,15,13,10,10,8,8,8,8,6,7,6,15
8,8,8,8,8,8,9,8,6,8,10,6,8,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,14
8,8,8,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14
8,8,6,8,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,6,9,8,8,8,8,8,8,8,8,14
6,10,6,8,8,6,8,8,8,6,8,8,8,8,8,6,8,8,8,8,8,6,10,6,8,8,8,9,7,14
2,14,1,14,2,0,0,0,0,1,14,2,0,0,0,1,14,2,0,0,0,0,0,0,0,0,0,15,2,13
2,14,1,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,2,13
0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,0,13
0,0,0,0,0,0,2,14,1,0,0,0,2,14,1,2,14,1,0,2,14,0,0,0,2,14,1,0,0,13
1,14,2,0,0,0,1,0,0,14,2,0,0,0,0,2,14,1,0,0,1,0,0,0,0,0,0,0,0,13
6,8,8,8,8,11,11,12,12,12,13,13,14,15,14,15,0,0,0,1,3,2,4,4,4,3,5,5,5,0
7,8,9,9,9,10,9,10,11,12,12,14,14,15,15,15,0,0,0,2,2,2,4,4,4,5,5,6,7,0
5,6,7,6,7,7,9,11,11,11,12,13,12,13,14,14,15,15,15,0,15,1,3,5,4,3,5,5,6,0
8,8,9,9,10,11,10,12,13,13,13,14,14,15,15,15,0,1,0,2,2,2,4,4,4,6,6,6,2,0
7,8,9,9,14,9,12,10,13,11,12,13,13,14,15,15,14,0,0,15,3,4,3,5,4,6,4,4,6,0
6,2,3,3,4,2,3,4,2,2,3,0,0,11,14,12,11,14,11,10,12,10,13,10,12,12,12,13,10,1
3,4,3,3,1,4,3,1,3,14,13,12,11,15,12,13,12,13,13,9,13,10,14,12,11,14,12,13,12,1
2,4,2,2,2,3,2,2,14,0,11,14,12,13,13,12,13,13,13,10,12,14,9,12,13,7,14,12,9,1
2,1,4,2,2,2,3,2,2,4,1,3,3,10,12,12,14,12,10,14,10,11,13,11,12,12,11,14,14,1
4,2,3,2,2,14,14,15,15,15,14,14,14,12,13,12,11,13,12,13,12,12,12,12,13,12,12,13,8,1
2,14,9,10,10,10,10,12,9,10,9,9,9,7,8,6,5,3,3,1,15,0,14,14,15,14,0,15,0,2
15,13,11,12,10,11,9,10,8,8,10,8,8,9,8,8,7,5,3,5,2,1,15,15,15,15,15,14,15,2
0,1,0,0,0,11,10,12,10,11,10,10,10,9,9,9,10,6,5,3,2,2,14,14,15,12,15,13,0,2
2,0,0,0,10,10,12,10,10,12,10,9,9,8,8,9,7,8,8,5,2,2,1,15,15,13,13,13,15,2
2,15,14,14,9,11,11,10,10,9,10,8,8,9,7,8,7,7,6,4,2,1,14,15,14,14,15,14,0,2
2,0,0,0,13,10,10,9,9,9,8,8,8,8,7,8,2,0,1,0,15,0,14,14,13,12,9,10,8,3
2,0,15,0,13,10,11,9,9,9,8,8,8,3,0,0,0,0,14,10,10,10,9,8,8,8,8,8,8,3
1,0,0,1,14,9,10,8,8,8,8,7,8,0,0,0,0,15,15,11,8,8,8,8,7,9,8,7,8,3
2,0,1,0,0,12,12,10,9,9,8,8,8,7,0,1,1,0,2,15,10,11,8,8,8,8,8,8,8,3
1,0,14,13,11,9,10,8,8,8,8,7,5,0,1,1,0,0,0,11,10,9,9,8,8,8,8,6,9,3
3,10,12,12,6,7,0,0,0,0,0,0,0,0,0,0,15,7,6,6,6,4,8,11,10,13,11,12,12,4
14,9,12,10,13,8,7,0,0,0,0,0,15,1,15,0,15,3,7,6,7,6,6,8,11,12,12,12,11,4
11,14,10,4,14,1,0,0,0,0,1,15,0,0,15,15,0,7,6,4,6,5,6,9,10,12,13,12,12,4
9,10,12,12,8,0,0,1,0,0,15,0,0,0,0,15,6,5,5,8,10,11,9,10,10,11,12,10,6,4
5,8,7,7,8,7,8,6,14,12,11,14,10,2,1,1,0,15,0,0,14,14,13,9,10,6,8,8,8,5
8,6,9,8,12,12,12,13,12,1,2,0,15,15,15,15,15,14,11,7,9,9,7,8,8,7,7,7,2,5
1,8,8,7,8,7,8,7,10,14,13,13,13,8,2,2,15,0,0,15,0,0,14,8,8,8,8,8,7,5
7,7,7,7,7,8,12,12,11,12,12,12,12,2,14,0,1,0,1,14,9,9,7,8,8,7,6,7,6,5
8,7,8,12,14,12,12,10,2,1,0,0,0,15,0,15,15,14,13,9,9,9,8,8,8,7,8,6,8,5
0,0,0,15,2,15,15,2,15,1,14,0,0,8,10,10,10,10,10,10,10,10,8,10,8,11,10,10,10,7
1,14,1,1,15,1,0,0,0,0,9,8,10,8,10,9,10,9,9,9,10,10,10,10,10,10,12,12,9,7
0,0,15,0,0,15,0,0,0,0,0,0,2,15,8,9,9,8,9,9,9,9,10,9,10,10,11,11,10,7
0,0,0,0,0,0,15,2,15,0,0,0,0,8,9,9,10,10,10,10,9,10,10,11,10,12,8,10,11,7
1,15,0,0,15,0,0,0,0,0,8,10,8,8,9,9,13,10,11,10,10,11,10,11,10,11,12,10,10,7
0,0,1,1,3,7,6,9,7,9,8,10,9,15,15,14,15,13,14,9,8,9,8,7,7,6,2,2,0,8
3,5,7,6,9,8,8,9,9,9,14,15,15,14,14,14,13,7,7,9,6,7,6,5,5,1,1,1,1,8
7,6,2,3,1,13,14,12,10,10,7,8,6,8,10,9,12,14,14,15,0,15,1,2,2,4,5,5,7,8
7,6,9,8,9,12,12,14,15,15,14,14,14,12,10,8,7,8,8,5,3,4,3,2,2,2,0,1,0,8
0,2,5,3,6,8,7,7,11,10,14,14,15,14,12,12,8,8,8,8,7,7,6,3,2,0,1,0,0,8
8,10,8,8,8,7,8,6,7,5,6,2,3,1,1,0,0,15,14,13,11,10,10,10,11,11,10,12,10,9
7,9,8,7,10,12,12,12,15,15,0,0,0,4,2,2,2,4,3,10,12,11,12,10,11,10,12,13,9,9
6,6,6,6,7,9,8,10,15,14,15,1,1,2,3,3,3,3,9,13,9,10,11,11,12,10,11,12,14,9
7,7,7,8,8,10,10,13,15,15,15,0,0,0,1,1,2,5,5,11,8,10,12,11,9,12,10,11,8,9
0,5,6,6,8,6,8,10,12,12,12,14,14,14,3,3,5,2,1,5,4,13,12,11,10,12,12,12,10,9
6,1,2,2,15,0,14,14,11,11,10,8,8,8,8,8,8,6,6,6,3,4,2,3,3,2,2,2,3,6
8,8,9,8,9,10,9,11,10,11,11,12,12,14,15,15,0,0,0,1,3,4,2,6,5,8,8,7,9,6
6,10,8,8,12,9,9,10,8,9,10,12,12,11,14,14,15,15,15,0,0,0,3,4,4,7,6,6,8,6
7,8,8,8,9,9,10,10,10,11,11,12,13,13,14,14,0,0,15,2,3,2,2,4,4,5,6,8,7,6
7,8,8,9,8,9,9,10,12,11,11,13,12,14,14,14,0,0,15,2,0,2,4,5,5,7,6,8,5,6
8,11,8,9,8,12,0,0,0,1,14,2,15,2,0,1,1,1,0,2,0,1,2,0,3,1,0,2,2,11
7,10,11,10,7,10,9,9,11,10,12,1,15,2,0,0,1,0,0,1,1,1,0,2,1,1,2,1,1,11
11,8,8,10,9,12,0,0,0,0,14,2,0,1,1,4,0,0,1,1,0,0,2,3,2,15,3,2,0,11
9,13,9,11,14,1,0,1,1,0,2,0,2,14,2,0,2,0,3,0,2,2,4,0,2,2,2,2,2,11
9,6,10,8,9,9,9,14,0,0,0,0,1,15,1,1,2,2,2,3,2,2,2,2,4,2,6,10,14,11
7,3,4,3,1,12,13,10,13,5,6,5,5,8,0,0,14,0,0,0,15,0,8,8,8,9,8,9,8,10
3,5,3,4,3,12,13,13,13,6,5,6,7,7,15,0,15,0,0,0,0,0,12,8,8,9,8,8,9,10
3,5,2,2,4,13,13,12,12,13,10,5,6,5,6,6,15,0,0,0,15,15,0,8,9,8,9,8,10,10
3,4,3,3,12,13,12,13,11,7,5,6,5,5,6,12,0,15,15,0,15,15,4,8,8,8,8,8,8,10
4,2,4,3,12,11,10,13,6,6,5,6,6,13,0,0,15,0,0,0,0,15,7,9,8,9,9,9,9,10
8,10,8,10,9,10,9,11,4,4,4,4,4,4,4,4,2,4,4,0,12,13,14,13,13,14,13,14,13,12
10,8,10,9,10,9,10,9,12,4,4,4,3,4,3,3,3,4,4,1,13,13,14,12,12,12,13,13,14,12
9,9,9,10,10,10,9,10,0,4,4,4,4,2,4,3,3,3,4,14,12,13,12,13,13,13,13,12,14,12
7,10,8,9,10,9,9,12,12,13,4,3,4,3,4,3,4,4,2,4,13,13,12,12,12,13,13,13,14,12
9,9,10,9,10,9,10,10,2,3,3,3,3,3,4,3,4,3,2,11,13,12,13,13,13,12,13,13,13,12
10,6,10,8,11,12,11,13,12,14,11,14,14,12,14,15,12,13,14,10,10,11,7,8,8,6,7,6,7,15
0,5,6,6,7,8,7,9,9,11,13,14,0,15,0,0,15,0,15,15,15,14,9,8,8,9,7,6,7,15
0,6,7,6,7,7,8,7,10,10,13,15,15,0,0,0,0,0,15,0,15,14,14,9,9,9,8,8,7,15
2,7,7,9,6,10,8,13,14,14,15,1,0,1,0,1,1,1,1,14,1,1,15,12,12,12,10,11,9,15
0,1,0,2,0,0,1,2,14,2,0,1,1,0,1,1,14,2,0,0,0,14,1,0,0,0,0,8,7,13
1,1,0,1,14,2,0,2,14,1,0,0,2,14,1,2,14,1,0,0,1,0,0,0,14,0,0,0,0,13
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,2,14,1,14,2,14,0,0,0,0,13
0,2,14,0,0,14,14,2,14,0,0,0,2,14,1,0,2,14,0,0,0,14,2,14,0,0,0,0,0,13
2,12,2,14,14,14,0,14,1,1,14,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,15,1,13
8,8,6,8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,6,10,8,9,6,10,8,8,8,8,10,14
5,9,8,6,10,6,8,8,8,8,8,8,8,8,8,9,6,8,8,8,8,6,10,6,6,10,8,6,10,14
10,4,14,0,0,0,8,8,8,8,8,8,9,6,9,9,6,9,6,8,6,8,8,8,9,6,8,8,8,14
8,6,9,8,6,9,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,9,7,14
8,8,6,8,8,6,8,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,14
6,6,6,6,7,12,11,14,13,14,14,14,15,13,15,14,13,8,8,8,7,8,6,7,6,5,4,4,4,15
12,12,11,12,11,2,0,0,0,0,0,15,15,9,4,4,3,4,4,4,2,11,12,12,12,12,12,12,11,4
1,3,1,2,0,2,0,3,0,3,0,2,2,10,10,12,10,11,12,10,12,12,10,14,12,10,12,12,10,1
3,0,2,1,4,0,1,4,1,1,3,0,12,11,10,11,11,10,12,10,12,10,12,11,10,12,10,12,9,1
1,2,2,2,1,2,1,1,3,3,2,10,12,8,11,10,12,10,12,10,11,12,10,11,11,12,10,10,12,1
3,1,2,2,0,3,1,3,2,2,2,12,10,13,12,12,11,11,12,10,11,12,12,10,12,10,12,9,13,1
4,1,2,2,0,2,2,2,0,2,2,10,11,10,11,11,10,11,11,11,11,11,10,12,12,10,12,12,11,1
4,2,0,1,0,13,12,12,11,12,10,10,10,8,7,8,5,2,2,15,14,13,12,14,14,15,0,0,2,2
6,2,2,2,15,11,12,10,11,11,10,10,10,10,9,8,7,6,5,2,2,1,15,14,14,12,14,14,15,2
6,2,2,2,14,15,14,14,11,12,10,10,9,10,8,8,8,6,5,1,0,1,13,13,13,0,0,0,2,2
7,1,3,2,0,15,15,13,12,12,10,10,10,10,8,8,8,8,8,4,1,0,15,13,13,13,0,15,0,2
4,3,0,1,15,14,12,13,10,11,10,9,10,9,8,7,7,3,4,1,15,0,14,12,12,15,0,1,1,2
8,1,15,0,0,14,13,10,9,10,7,9,7,8,0,0,0,15,0,15,13,12,10,9,8,8,8,8,8,3
3,0,0,1,15,12,13,11,9,9,9,8,8,8,0,15,1,14,0,13,11,12,9,8,8,8,7,9,7,3
6,1,15,0,15,14,13,12,10,10,8,9,8,8,2,0,0,15,0,15,11,11,9,8,8,8,8,8,8,3
7,1,0,0,0,13,13,11,10,10,9,8,8,8,7,15,1,15,0,15,14,14,11,9,9,8,8,8,7,3
6,1,15,0,14,13,13,10,10,9,8,8,9,8,8,15,1,0,0,0,13,13,10,9,9,9,8,9,7,3
11,9,11,10,10,10,10,9,15,0,15,0,14,0,0,0,0,0,1,4,4,5,6,7,7,11,11,11,12,4
10,10,10,11,9,11,10,9,15,15,0,15,0,15,0,15,15,2,4,3,6,6,7,8,8,10,12,11,11,4
9,10,10,10,10,10,10,10,0,0,15,0,0,0,0,15,0,4,3,5,6,6,8,9,10,11,12,11,12,4
10,10,10,11,9,10,10,9,0,15,15,0,0,15,0,0,0,1,3,3,6,6,7,9,9,11,11,12,12,4
10,9,10,10,10,9,10,9,0,15,0,0,15,15,0,0,14,3,2,4,5,6,7,8,7,10,12,12,10,4
7,8,8,9,7,14,10,12,10,11,10,10,10,2,15,1,15,0,0,0,13,12,9,8,8,8,8,8,8,5
8,7,8,7,8,8,7,12,10,11,11,10,11,9,12,9,1,14,0,0,0,0,15,15,14,10,9,9,9,5
6,8,7,8,6,8,7,13,10,10,10,11,11,12,10,10,2,0,0,0,0,0,0,14,14,13,10,9,9,5
8,8,7,8,7,13,12,10,11,11,10,15,2,14,1,0,1,15,0,14,10,10,8,8,8,8,7,8,7,5
8,7,8,8,8,0,13,10,12,10,10,12,10,1,1,1,0,0,0,14,11,11,9,8,9,8,8,8,7,5
7,7,8,8,9,9,9,9,10,10,10,12,12,14,15,15,14,0,0,15,1,2,5,6,6,8,8,8,9,6
6,8,8,8,9,9,8,9,12,10,12,12,13,13,14,14,15,0,15,1,3,2,6,6,7,7,8,8,9,6
7,7,9,8,8,9,9,10,10,10,13,12,13,13,0,15,0,0,0,1,4,4,6,6,7,6,8,8,8,6
6,8,8,8,9,9,10,8,11,10,10,14,13,14,15,14,0,15,0,15,2,2,4,5,6,7,6,8,6,6
7,7,9,8,9,9,9,10,10,10,11,11,12,14,15,14,1,15,0,0,2,2,4,6,7,6,8,8,8,6
0,0,0,0,15,1,15,1,0,15,1,15,0,0,0,0,14,1,14,8,10,8,10,8,9,10,10,10,9,7
14,0,0,0,14,0,0,0,0,14,0,8,9,8,9,10,9,9,10,8,10,9,8,10,10,8,9,9,12,7
0,0,0,14,2,14,0,0,0,14,15,6,8,8,10,8,9,9,8,9,9,9,10,9,10,7,10,10,8,7
14,2,15,0,0,0,0,0,0,0,14,0,14,0,6,8,9,9,8,9,8,9,9,9,8,9,10,10,9,7
9,0,14,0,13,1,0,0,0,0,14,0,15,1,14,0,0,8,8,8,8,9,8,9,9,8,9,9,9,7
13,0,0,0,1,4,3,6,7,8,7,10,10,14,13,13,15,13,12,9,8,8,8,7,8,5,2,1,0,8
14,0,0,0,2,4,5,8,6,8,8,10,10,12,14,13,0,13,13,8,8,8,8,6,6,2,2,1,1,8
11,0,0,15,1,4,4,7,6,7,8,9,10,12,14,14,14,0,14,9,8,8,8,7,7,3,1,0,1,8
8,15,0,0,1,4,5,7,8,7,8,11,10,14,14,14,15,12,12,9,8,8,8,6,7,3,2,2,0,8
11,0,0,0,1,4,3,6,7,7,9,9,10,13,13,13,15,14,14,10,8,8,8,8,8,7,3,4,1,8
2,3,4,4,5,8,6,8,8,8,8,10,9,10,12,10,12,12,12,13,14,14,0,0,0,1,1,2,3,0
3,3,4,5,8,8,8,8,9,10,10,10,11,10,12,12,12,14,14,15,0,0,15,1,0,4,2,4,3,0
2,3,4,4,6,7,8,7,9,9,10,10,11,10,12,12,11,13,14,14,0,0,0,0,1,3,2,3,5,0
2,3,4,4,5,8,7,8,9,9,10,10,12,10,11,11,13,11,13,12,14,14,0,0,0,0,2,2,3,0
1,3,4,4,7,8,8,9,9,10,10,10,10,11,11,12,11,14,14,0,0,0,0,2,1,3,4,4,3,0
2,2,2,2,11,14,11,14,8,6,7,6,6,7,6,6,15,0,0,0,15,0,14,8,9,8,9,9,8,10
2,2,3,2,12,12,13,13,12,13,6,6,6,6,6,6,14,0,15,0,0,14,0,8,8,8,9,8,9,10
8,2,2,2,1,11,11,12,11,11,12,5,6,6,6,6,14,15,0,0,0,0,0,8,8,9,8,9,9,10
7,1,3,2,14,12,13,12,12,13,6,6,6,6,6,6,12,15,15,15,0,15,15,12,8,7,9,8,9,10
6,2,1,2,11,12,12,11,12,9,6,6,6,6,6,14,0,0,15,0,15,0,10,8,8,9,8,9,9,10
10,14,10,12,10,12,11,0,1,2,0,1,0,2,0,2,0,2,0,2,3,0,2,2,1,1,3,1,3,11
13,10,11,13,10,12,12,10,1,1,1,1,1,1,1,2,2,1,4,0,4,0,3,0,2,3,1,2,2,11
13,11,12,12,12,12,12,12,12,12,4,1,2,14,2,1,0,2,2,0,0,2,2,0,0,3,1,2,2,11
11,11,12,10,12,10,12,11,2,2,0,0,2,0,0,1,0,2,2,0,1,0,2,1,1,1,2,2,2,11
14,9,12,12,11,10,12,10,12,11,3,0,0,1,0,2,15,2,1,1,1,1,1,2,0,3,1,2,0,11
11,9,10,9,11,9,9,8,7,7,8,5,5,2,4,3,4,2,2,1,15,15,14,14,13,13,13,13,13,12
11,9,10,10,10,10,8,9,6,7,6,5,4,5,2,4,2,2,2,0,15,15,14,14,14,12,14,14,13,12
10,11,9,8,11,9,9,9,9,8,8,6,6,3,4,4,3,2,3,2,1,1,0,15,14,12,14,13,14,12
12,9,11,10,10,10,10,10,7,8,6,4,4,4,3,4,3,2,2,2,2,1,15,14,13,14,12,14,13,12
9,12,10,10,10,10,10,8,6,7,5,4,4,5,2,4,2,2,1,0,14,14,13,13,13,12,13,13,5,12
2,4,5,6,7,8,8,7,9,8,9,10,10,12,12,14,14,0,15,15,15,14,0,13,13,10,8,9,8,15
0,2,6,6,8,8,7,8,8,8,10,12,12,13,14,14,0,14,14,14,10,11,8,9,8,8,8,8,7,15
5,8,6,8,8,8,8,9,8,9,11,12,13,12,14,14,0,15,15,15,15,0,14,15,15,14,12,11,9,15
4,5,6,7,7,9,8,9,10,10,12,14,14,15,15,15,15,0,0,0,14,14,9,9,8,8,7,8,8,15
7,8,8,8,12,10,12,12,14,15,14,15,15,14,15,13,15,12,12,11,8,9,7,8,8,8,6,8,6,15
8,6,8,8,8,7,8,8,8,7,8,8,8,6,8,8,8,8,8,6,8,6,7,0,2,1,14,2,15,14
7,9,6,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,8,6,7,1,14,0,0,0,14,0,14,14
8,8,8,8,8,8,8,8,8,8,8,8,10,6,9,8,8,8,8,8,8,8,8,8,8,8,8,2,13,14
6,9,6,6,10,6,8,8,8,6,8,8,8,8,8,8,8,6,8,8,8,8,8,6,6,8,8,9,7,14
6,9,6,8,8,8,9,6,9,8,8,8,8,6,9,8,8,8,8,6,9,8,8,8,6,8,2,0,14,14
1,1,0,14,1,0,0,0,2,14,2,14,0,0,1,0,0,0,2,14,1,1,14,0,0,0,0,8,13,13
14,2,0,0,0,0,0,1,14,2,14,1,2,14,1,2,14,1,14,2,14,0,0,0,0,0,14,6,10,13
0,2,15,1,14,0,0,1,0,0,2,15,0,0,0,0,0,0,0,14,14,0,0,9,8,9,8,8,0,13
3,0,0,2,14,1,14,1,0,14,1,0,14,1,0,14,0,0,1,0,0,0,0,0,14,0,14,6,14,13
9,6,8,6,14,3,14,1,0,0,0,1,0,1,14,14,1,0,0,0,0,2,14,2,2,14,1,0,13,13
0,3,6,6,8,8,8,9,13,12,13,0,14,0,4,4,4,10,10,12,11,13,10,11,10,12,12,12,12,9
10,2,5,4,4,4,4,5,3,5,2,4,5,6,8,8,6,8,8,8,10,10,10,13,12,13,15,15,15,9
10,4,4,3,5,3,3,5,2,3,5,4,3,2,6,6,6,8,6,9,7,9,9,10,10,12,12,13,14,9
7,3,4,4,4,3,2,4,4,4,7,7,7,8,9,8,10,12,10,13,15,14,14,15,15,14,1,0,1,9
3,5,3,4,4,3,4,2,4,3,4,4,4,8,7,8,6,10,10,9,11,11,10,13,13,14,14,14,14,9
2,0,4,1,12,8,13,10,12,8,13,10,10,12,10,10,12,12,12,10,13,10,12,12,12,12,10,12,11,1
2,2,1,1,3,2,0,4,1,2,1,2,1,9,10,8,13,9,11,10,12,10,11,9,10,13,10,12,12,1
12,12,10,12,12,10,10,13,10,12,9,13,12,10,10,12,9,13,13,10,12,12,12,12,12,10,13,10,12,1
4,1,3,0,11,13,12,9,12,11,8,12,12,9,12,12,14,11,12,10,13,12,12,12,10,13,8,6,0,1
3,0,10,8,12,12,11,10,11,10,14,10,12,10,10,11,14,12,12,10,11,10,10,12,13,9,2,0,1,1
0,0,0,0,1,14,13,8,9,8,9,8,8,9,8,9,9,8,12,1,15,0,0,0,0,0,0,1,14,2
1,1,2,2,14,13,12,11,11,12,9,10,9,9,8,8,8,7,7,5,2,1,0,0,0,13,12,13,14,2
2,4,1,1,0,15,14,11,11,12,10,10,10,10,9,9,9,7,8,5,4,2,2,0,0,0,14,13,14,2
2,15,14,13,12,11,12,10,11,10,10,9,9,8,7,7,6,5,4,4,1,0,15,15,14,13,14,15,1,2
3,1,15,0,12,11,12,10,10,11,10,8,9,9,7,8,6,4,4,4,0,1,14,14,12,13,0,0,0,2
2,0,0,0,15,11,12,10,8,9,8,8,8,2,15,0,0,1,0,1,14,15,10,10,9,9,8,8,8,3
15,1,13,12,10,9,10,7,8,8,7,0,1,0,0,0,0,0,0,14,11,12,9,8,8,8,8,8,8,3
0,14,9,10,8,8,8,7,7,5,0,1,1,15,1,0,1,14,15,12,11,11,10,9,9,8,8,8,8,3
1,1,15,0,13,9,9,8,8,7,8,0,0,0,0,0,0,0,0,13,10,11,8,8,8,8,8,8,8,3
0,0,0,0,14,12,12,9,8,9,7,8,8,1,0,1,15,1,0,1,0,0,13,10,10,8,9,8,8,3
10,12,10,10,12,11,12,10,0,0,1,0,0,1,14,0,5,4,5,5,6,9,13,12,12,12,12,13,9,4
11,12,10,10,11,12,12,7,0,0,15,0,0,0,15,1,5,4,5,4,6,8,12,11,12,12,11,10,14,4
6,11,12,10,12,10,11,11,4,0,15,0,0,0,0,0,1,4,4,4,5,4,7,12,11,11,11,11,12,4
10,10,12,11,12,10,10,13,2,0,0,15,0,14,0,0,4,4,4,6,6,6,12,12,12,12,11,11,13,4
10,9,12,12,10,12,11,10,0,0,0,14,15,0,0,14,2,4,4,5,6,5,9,12,12,10,11,12,10,4
8,6,8,8,6,7,6,13,9,9,10,9,10,12,12,14,2,0,0,1,0,0,0,15,0,14,15,15,10,5
8,8,8,8,8,7,9,10,11,11,11,1,0,1,0,0,0,14,14,15,13,11,10,6,8,6,8,7,8,5
7,7,7,8,6,9,10,8,13,11,2,15,0,0,0,1,14,0,0,0,13,12,8,8,9,6,8,7,8,5
7,8,8,8,9,11,10,10,10,10,11,12,12,14,15,0,15,0,1,15,1,2,4,5,4,6,5,8,7,6
7,9,7,8,11,10,10,11,10,10,9,14,14,15,0,0,0,1,1,4,4,3,6,6,6,8,8,8,8,6
7,9,9,10,10,10,9,10,10,10,12,15,15,0,15,15,1,1,1,3,5,4,4,7,6,8,8,8,8,6
1,14,0,1,15,0,0,0,0,14,0,8,12,8,11,10,12,10,11,11,10,10,11,9,11,10,10,10,10,7
14,0,1,0,1,0,15,2,15,0,0,15,9,8,9,8,10,10,10,10,11,10,11,11,11,10,12,11,10,7
2,13,1,15,1,0,0,0,15,0,14,8,8,10,8,9,10,10,11,10,11,12,9,11,10,12,10,10,9,7
0,0,0,0,0,0,0,0,0,14,1,10,8,9,10,11,9,9,9,9,11,10,12,11,10,13,10,10,12,7
0,0,1,15,1,0,1,14,1,0,0,0,0,0,14,0,0,9,9,7,8,8,8,9,7,10,9,10,9,7
0,0,2,3,2,6,5,8,9,9,8,9,10,11,15,14,0,15,0,14,1,0,9,6,8,6,7,7,4,8
13,1,0,0,2,6,7,6,8,7,8,11,10,13,14,14,15,15,0,14,9,8,8,8,8,6,1,1,2,8
0,0,2,2,4,6,6,7,9,8,10,10,11,12,14,13,14,15,14,9,8,9,6,8,8,6,2,2,1,8
8,8,4,4,2,0,2,15,15,15,9,10,10,10,9,9,10,12,12,0,15,15,1,1,1,4,7,8,6,8
0,0,1,1,4,5,5,9,7,8,9,10,10,14,14,14,12,13,13,12,8,9,7,8,8,6,2,3,0,8
1,6,8,8,10,10,11,12,13,13,0,0,0,3,5,4,4,4,4,14,11,12,11,11,11,12,12,8,7,9
4,8,7,6,9,9,9,9,11,11,14,1,15,0,1,2,4,3,3,4,4,4,10,12,11,13,11,11,10,9
2,4,6,7,9,8,10,9,13,12,12,14,15,15,1,1,4,4,3,4,12,12,10,12,10,12,11,12,10,9
0,1,4,4,8,8,7,9,10,10,10,12,13,15,15,0,0,3,3,4,4,4,11,11,11,11,11,11,11,9
2,1,5,5,9,8,8,10,11,12,11,15,14,15,1,0,3,4,5,3,6,12,11,12,12,11,11,10,10,9
8,6,9,10,8,6,9,8,8,8,8,8,9,6,10,8,8,8,8,8,8,10,6,9,10,6,9,8,10,14
5,10,6,10,6,9,10,6,9,8,10,6,8,6,9,9,6,10,8,8,8,8,8,8,8,10,6,8,8,14
8,8,8,6,10,8,6,10,8,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,14
8,8,8,8,8,8,8,8,8,8,8,8,10,6,9,10,6,9,8,8,8,8,8,9,8,8,8,8,9,14
6,10,6,8,8,8,8,10,6,8,8,8,8,8,9,8,8,8,8,8,8,6,10,6,6,10,6,8,6,14
0,0,0,0,0,14,0,14,1,14,2,14,2,14,1,0,0,0,0,0,0,0,0,1,1,14,0,0,0,13
4,15,0,0,0,0,0,0,0,0,2,14,0,0,0,2,14,1,14,2,0,0,0,0,0,0,14,0,14,13
2,14,1,0,0,0,0,2,14,0,2,14,1,0,0,0,0,0,14,2,14,14,2,14,1,14,0,15,14,13
14,1,14,0,2,14,0,0,0,0,0,1,0,0,0,2,14,1,2,14,1,0,0,0,0,0,0,0,15,13
0,0,0,2,14,1,0,0,0,0,0,0,0,14,1,0,0,0,0,0,1,0,2,14,1,14,2,15,2,13
5,7,6,8,6,8,8,8,12,12,13,14,15,13,0,14,14,10,9,10,7,8,8,7,7,7,5,5,4,15
5,4,7,6,8,7,8,8,10,9,12,12,12,14,14,15,0,13,14,8,10,8,9,7,8,6,5,4,4,15
4,8,4,6,8,8,10,10,11,12,12,13,15,13,15,0,14,12,10,9,8,8,7,8,7,7,6,6,4,15
6,6,8,7,9,8,9,12,12,12,12,13,12,13,12,12,12,8,9,8,7,7,6,6,5,4,3,5,2,15
6,3,6,6,8,7,8,10,11,10,13,12,13,14,14,14,12,13,12,9,8,8,7,8,7,6,2,4,4,15
5,4,7,8,8,8,8,10,9,10,11,10,12,9,14,12,13,10,11,13,13,13,15,15,0,0,0,0,3,0
3,6,6,6,9,8,8,10,10,11,10,13,12,12,12,13,12,15,14,15,0,1,3,4,4,4,4,4,5,0
5,4,6,7,8,9,10,10,12,11,11,12,12,12,12,12,13,12,12,14,14,14,0,1,1,3,2,2,5,0
4,6,8,7,8,9,8,9,10,10,12,11,10,11,12,12,14,15,0,15,1,2,2,4,3,4,4,3,4,0
4,6,8,8,7,9,9,12,12,12,12,11,12,10,13,12,0,0,0,1,2,2,3,3,3,5,5,4,4,0
12,10,12,12,12,10,12,12,12,12,14,0,14,2,0,2,2,1,2,2,2,3,1,3,3,0,4,2,2,11
8,14,10,10,10,12,11,14,14,14,3,0,0,2,0,1,4,0,2,14,1,1,0,2,0,2,2,1,1,11
14,10,13,13,12,0,1,14,2,1,0,2,2,1,4,1,2,2,2,2,0,1,2,2,0,2,0,1,1,11
9,9,12,12,8,13,11,14,12,14,2,1,0,2,0,0,2,0,0,2,15,1,14,1,0,1,1,1,0,11
9,9,10,11,9,12,11,14,12,14,1,0,0,14,2,2,2,0,2,2,0,0,14,2,0,14,2,1,0,11
8,11,9,9,10,10,9,9,9,9,9,4,3,3,4,4,4,3,1,3,1,1,14,12,12,14,13,14,13,12
8,11,8,9,10,10,10,9,11,10,8,7,7,5,2,2,3,4,3,4,2,4,2,13,13,12,13,12,14,12
9,10,10,10,10,9,10,9,8,10,4,3,3,4,3,4,3,4,3,3,14,14,12,14,13,13,14,13,14,12
10,10,11,11,12,10,8,10,9,8,7,5,5,4,2,2,3,3,2,3,0,15,12,13,13,12,14,12,13,12
10,10,8,9,8,10,10,10,10,11,6,3,5,2,4,3,2,3,2,5,2,2,14,12,13,12,12,12,13,12
4,4,3,4,4,15,14,12,13,12,12,6,6,7,7,7,5,15,0,0,0,15,0,15,0,8,10,9,9,10
5,2,3,2,3,15,14,11,13,12,12,8,6,6,6,5,6,1,1,0,0,0,0,15,15,0,8,8,9,10
6,3,4,3,4,2,15,12,12,12,12,12,10,6,6,7,7,6,0,14,0,0,15,0,0,9,9,10,9,10
4,3,4,3,2,3,2,12,12,12,12,12,12,8,6,6,7,6,6,15,1,15,0,15,0,1,10,9,10,10
6,2,5,4,3,3,1,12,12,12,12,12,11,6,6,5,7,1,1,0,0,0,0,0,13,8,9,9,9,10
6,6,9,8,10,9,10,10,13,12,12,14,14,0,0,15,1,3,2,5,3,5,6,6,6,8,8,9,11,6
6,8,8,7,10,9,10,9,12,12,10,13,13,14,15,15,15,0,1,3,4,4,5,5,6,7,11,9,12,6
5,8,7,7,6,12,12,12,12,11,5,1,0,0,0,0,0,14,15,14,12,12,11,9,9,8,9,8,8,5
8,7,8,6,10,12,10,12,10,11,9,1,0,0,0,0,14,15,15,14,12,13,10,9,8,8,7,6,7,5
4,2,2,2,1,0,2,1,0,14,8,11,8,11,8,10,10,11,10,12,10,12,9,12,10,10,11,10,10,1
10,15,2,15,2,15,1,2,2,4,2,2,3,2,4,7,12,10,11,10,11,10,9,12,10,14,10,10,13,1
0,3,3,2,3,3,3,2,4,4,2,5,5,4,14,13,9,12,10,11,11,11,10,11,10,13,10,12,11,1
15,0,0,1,1,2,3,2,2,4,0,12,12,12,10,10,12,11,11,12,10,11,10,12,10,11,10,12,9,1
14,0,1,1,2,2,2,4,3,4,4,4,4,11,12,11,12,10,11,11,11,12,10,12,12,10,12,11,13,1
2,2,0,1,0,13,12,11,10,11,10,9,9,8,8,8,7,6,6,1,1,1,1,0,1,13,13,12,14,2
4,1,0,1,14,10,10,10,8,8,10,8,8,9,6,7,7,4,4,2,0,0,15,14,14,12,14,14,1,2
5,1,2,1,0,12,11,10,10,9,9,8,8,8,7,7,7,4,4,0,0,0,0,14,14,15,14,14,2,2
4,0,1,0,0,11,12,10,11,10,8,8,8,8,6,8,6,6,7,2,0,0,0,15,15,14,14,15,14,2
1,2,0,1,13,9,11,9,9,9,8,9,8,8,7,7,6,6,6,1,15,0,0,15,15,15,15,0,15,2
2,2,0,0,15,12,10,9,9,7,9,6,7,0,0,0,0,0,0,13,10,10,8,8,8,7,7,7,7,3
2,1,0,15,14,10,11,9,8,8,7,6,7,0,15,0,0,14,0,12,9,9,8,8,8,6,6,7,7,3
3,1,0,15,14,9,9,9,7,8,7,7,6,15,0,0,15,15,14,14,10,9,8,7,8,7,6,8,6,3
3,0,15,0,12,8,9,8,6,8,6,15,1,0,15,0,14,14,14,12,8,8,7,7,8,7,6,7,7,3
0,1,14,15,11,8,8,8,8,8,6,8,7,0,0,0,0,15,15,14,9,9,8,8,7,7,7,6,7,3
8,11,10,12,9,4,1,15,0,0,0,0,0,0,0,10,2,1,3,2,2,11,10,9,10,13,9,8,13,4
9,11,7,1,0,0,0,0,0,14,6,3,4,2,3,4,3,12,12,12,12,11,11,11,12,11,10,11,10,4
9,10,10,9,10,10,3,15,1,0,0,0,0,8,3,2,4,2,4,2,11,9,12,10,9,13,10,11,11,4
9,9,12,9,11,6,4,15,1,1,0,0,15,7,2,2,4,3,5,2,10,10,12,10,11,12,12,12,11,4
8,8,11,11,13,10,7,1,15,0,0,1,0,15,5,2,2,2,3,1,9,9,9,11,10,13,10,10,12,4
8,7,8,8,6,12,12,11,3,0,1,0,0,0,14,14,10,9,8,8,8,8,8,8,7,8,5,5,1,5
8,7,8,8,6,10,14,10,4,1,0,0,0,0,0,0,15,12,13,9,8,8,8,7,8,8,8,7,8,5
6,7,12,9,10,10,2,0,1,0,0,15,0,0,15,0,14,14,13,12,9,9,8,8,8,8,6,8,6,5
6,7,7,7,8,7,7,0,11,10,12,11,10,11,2,1,0,0,0,0,15,0,0,15,15,12,11,10,12,5
8,7,7,8,6,8,10,11,10,12,8,1,0,0,0,0,15,15,14,0,13,14,9,7,8,8,8,8,8,5
5,8,8,8,9,9,8,10,12,12,13,15,14,0,0,0,0,0,0,1,6,5,8,7,6,8,7,8,6,6
7,8,9,9,8,9,9,9,11,9,12,13,13,13,15,14,0,15,0,15,1,0,4,6,6,6,8,7,8,6
7,8,8,8,9,9,9,11,10,11,10,12,12,13,14,15,14,0,0,0,1,0,3,5,5,6,7,7,7,6
7,8,8,9,8,9,8,8,9,10,11,12,11,12,15,14,14,0,0,0,1,0,1,5,5,6,7,6,8,6
7,8,8,8,8,9,8,9,9,9,11,13,12,14,0,0,14,1,0,0,0,0,5,7,6,8,7,7,9,6
0,0,0,1,14,0,0,0,0,0,8,6,8,9,8,9,10,9,10,11,9,11,7,10,8,10,9,9,10,7
2,2,15,0,0,0,0,0,1,0,0,0,0,15,8,10,8,9,9,9,9,9,10,8,10,10,10,9,10,7
0,0,1,1,0,0,0,14,0,0,14,1,0,14,7,7,10,8,9,10,8,10,8,10,10,8,8,9,12,7
1,15,0,0,15,0,0,0,0,0,0,0,0,12,6,8,9,8,10,8,11,11,9,12,12,10,11,12,8,7
1,14,1,15,1,15,0,0,0,0,0,0,0,6,10,9,12,8,10,8,8,8,9,9,8,10,8,9,11,7
0,0,0,0,1,3,5,7,8,8,8,9,10,12,14,13,0,11,9,8,8,8,8,4,4,1,1,1,0,8
0,0,1,0,2,6,6,7,9,8,9,15,14,0,12,12,10,9,9,8,8,8,7,3,4,1,0,1,0,8
0,1,0,0,1,6,6,7,8,6,9,14,13,14,11,12,9,8,8,8,6,7,3,1,1,0,0,1,15,8
0,0,1,2,4,7,7,6,9,12,14,13,13,13,10,10,8,8,8,9,8,8,6,1,1,1,15,1,15,8
0,0,1,0,2,4,5,8,8,7,12,14,14,10,8,9,7,9,8,8,6,7,3,0,0,0,0,15,0,8
5,5,10,8,10,10,10,12,0,14,0,0,15,2,4,5,3,4,2,5,12,11,13,10,10,13,10,12,11,9
2,5,7,6,10,9,10,10,12,13,14,15,0,0,2,2,5,4,4,3,11,12,11,10,10,13,10,12,12,9
8,7,7,7,8,6,5,2,3,2,2,1,1,0,0,1,15,15,12,10,11,11,11,11,11,13,10,9,12,9
8,7,8,7,8,4,3,5,2,3,0,1,1,0,0,0,1,15,15,9,10,9,12,9,10,8,13,12,12,9
3,5,7,7,9,10,10,10,11,11,14,14,15,15,1,0,2,3,3,6,3,4,13,10,11,10,13,12,12,9
7,4,1,2,12,13,13,14,6,8,7,7,7,7,0,0,0,0,1,15,0,0,0,8,8,9,8,9,8,10
6,4,2,2,12,14,15,14,7,7,8,6,8,6,6,7,15,0,0,15,0,0,0,15,0,0,8,9,8,10
6,2,15,12,15,14,10,7,7,7,8,6,7,15,0,0,0,0,0,0,0,0,15,8,8,8,9,9,7,10
5,3,4,4,3,2,2,13,12,13,12,12,12,6,7,6,7,6,7,15,0,15,0,15,0,9,8,9,9,10
3,4,4,3,4,14,13,13,12,12,13,10,6,5,6,6,8,6,1,14,0,0,0,0,0,15,8,9,8,10
2,4,7,6,8,8,8,8,8,8,9,10,10,12,12,13,12,14,14,0,15,0,15,1,0,2,4,2,4,0
7,1,4,4,5,7,7,8,8,8,8,8,9,10,11,12,12,13,13,12,14,13,15,0,15,2,2,2,2,0
2,5,7,6,8,8,8,9,8,9,11,11,12,13,13,13,14,14,14,15,0,15,1,2,3,2,4,4,3,0
3,3,5,6,7,8,8,7,8,8,9,11,10,11,12,12,12,14,13,15,14,15,0,1,1,3,2,3,2,0
4,7,7,8,8,8,8,8,9,9,9,12,10,13,12,12,14,14,14,14,0,15,0,2,1,3,2,3,1,0
8,10,8,9,10,8,12,1,14,0,14,2,15,2,0,0,1,0,0,1,0,0,1,1,1,1,0,0,1,11
8,10,8,10,8,12,11,0,0,0,2,15,0,0,0,0,0,0,15,2,0,0,1,0,1,0,2,0,2,11
9,8,8,8,10,8,9,9,0,0,14,0,1,15,0,1,14,2,0,0,1,0,1,0,1,0,1,0,1,11
8,10,7,10,6,8,9,9,0,14,2,0,0,2,15,0,14,1,0,14,1,15,2,0,1,1,0,1,1,11
6,9,8,8,9,8,8,12,0,15,2,0,15,2,0,0,2,15,1,0,0,0,0,1,0,1,1,15,1,11
1,5,8,7,7,9,8,11,12,11,13,0,15,15,0,0,15,0,0,0,15,14,15,9,9,11,9,9,8,15
4,6,7,7,7,10,10,13,14,15,15,15,0,0,15,15,15,14,14,14,10,9,9,8,8,7,8,7,8,15
6,8,7,8,8,8,9,14,0,15,15,15,15,15,0,0,15,14,15,11,9,9,7,7,8,6,7,6,6,15
4,7,7,7,7,8,8,9,13,13,14,15,15,0,15,0,0,13,13,11,8,8,7,7,7,7,7,7,6,15
5,4,8,8,6,9,7,11,15,14,15,15,15,14,14,13,15,9,8,9,7,8,7,7,7,7,6,5,4,15
9,10,9,10,10,10,10,9,8,8,7,4,4,4,3,3,3,1,2,1,1,1,0,15,13,9,13,12,12,12
8,8,8,8,9,9,8,9,9,8,9,5,4,3,2,2,1,1,2,1,0,1,0,13,13,10,12,11,12,12
10,6,9,9,9,8,10,10,10,9,10,5,5,3,3,3,3,2,2,2,1,1,1,0,15,10,13,12,15,12
8,8,9,9,8,10,10,10,8,10,8,4,4,4,2,2,2,2,2,1,0,1,0,12,12,10,12,12,12,12
9,7,9,8,10,8,9,9,10,10,5,3,4,2,3,3,2,3,3,2,0,1,13,11,12,13,13,13,12,12
8,8,8,8,6,9,6,9,6,9,6,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,14
8,6,9,8,6,9,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,14
4,6,9,6,9,6,8,6,9,8,6,9,8,8,6,8,8,8,8,8,8,9,8,9,8,10,6,8,8,14
4,9,9,8,8,8,8,8,8,9,6,8,8,6,9,6,10,6,8,8,8,8,8,8,9,8,9,8,10,14
9,5,8,8,8,8,8,8,8,10,6,9,8,8,8,6,10,6,9,6,8,8,8,8,6,10,8,8,10,14
0,0,0,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,14,1,0,0,14,0,0,0,0,14,13
0,0,0,0,2,14,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,14,1,14,0,14,0,0,13
2,14,1,0,2,14,0,0,0,2,14,1,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,15,13
0,0,0,2,14,1,0,0,1,0,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,2,14,14,1,13
9,2,14,0,0,0,1,14,2,0,0,0,0,0,0,0,0,14,0,0,0,0,0,1,0,0,1,0,14,13
2,4,4,4,4,5,5,7,8,8,8,9,9,9,11,10,12,11,12,12,14,13,0,15,0,15,1,0,4,0
0,0,3,3,4,5,4,5,7,7,8,8,8,10,11,10,10,12,11,12,12,12,12,0,15,0,15,0,1,0
4,4,4,4,5,6,7,8,8,8,9,10,10,11,11,11,12,13,12,14,0,0,0,0,2,0,3,3,4,0
5,4,6,6,7,7,7,8,6,8,8,10,8,12,11,10,12,12,11,12,12,11,13,14,14,14,0,0,15,0
2,4,4,4,6,8,8,7,9,8,9,10,10,12,11,12,12,13,13,15,0,0,14,1,1,3,4,4,5,0
3,2,4,2,6,3,3,10,14,12,13,12,12,12,12,12,10,13,12,13,12,12,10,13,11,14,12,12,14,1
4,2,4,4,2,4,4,3,3,6,1,12,12,14,11,13,12,12,12,12,12,13,13,11,14,11,12,12,11,1
12,13,13,12,12,12,12,12,12,12,12,12,14,12,12,10,13,9,10,12,10,9,13,10,10,12,13,8,2,1
14,10,13,13,12,13,12,13,10,12,10,13,12,10,13,13,12,12,13,10,12,9,14,10,12,12,0,2,6,1
2,4,2,4,1,3,2,12,10,11,10,12,12,12,12,11,12,12,14,10,14,12,14,12,10,14,10,10,11,1
1,0,15,11,13,11,11,10,10,10,7,8,7,8,7,8,7,6,6,2,0,0,14,14,14,15,15,15,14,2
1,1,0,0,0,11,11,11,12,11,9,9,9,7,8,8,7,6,4,0,0,0,15,15,14,14,15,0,15,2
2,0,14,11,10,11,9,9,8,9,7,8,8,8,6,9,6,1,15,0,14,15,14,0,0,15,0,0,0,2
0,1,0,0,12,9,11,11,9,10,9,8,8,8,8,6,8,4,3,0,15,0,14,0,14,0,0,15,15,2
2,1,1,0,12,12,11,14,10,12,10,7,8,8,8,8,7,7,8,4,0,1,14,0,15,14,15,0,15,2
1,0,15,0,15,10,12,8,8,9,7,7,7,7,2,1,1,0,0,15,14,0,13,12,10,8,9,8,8,3
1,0,0,0,15,14,14,11,8,8,7,8,8,8,4,1,1,0,0,15,15,15,10,9,10,9,8,8,8,3
1,1,0,0,0,13,13,13,8,9,8,8,9,8,1,1,0,0,0,0,15,15,11,8,8,8,8,8,8,3
0,1,15,0,15,13,13,10,8,8,8,7,9,5,15,0,1,15,0,15,13,10,10,9,10,7,8,8,8,3
0,0,0,0,15,11,11,9,7,9,7,8,8,7,1,1,0,0,0,1,13,13,12,9,9,8,8,8,8,3
11,11,13,11,13,8,8,7,0,0,0,0,0,15,1,15,4,5,4,5,5,8,13,10,11,12,12,12,12,4
10,13,9,7,0,14,0,15,0,15,0,0,15,5,3,4,3,5,5,13,11,10,14,10,12,11,12,10,13,4
13,10,11,12,12,6,6,15,1,0,0,15,0,15,2,4,4,4,4,4,9,11,11,12,12,10,12,10,13,4
13,10,5,0,0,0,0,15,0,15,10,5,4,5,4,4,4,5,4,12,8,8,12,11,12,12,12,13,12,4
12,10,4,3,15,0,0,15,0,0,9,3,4,4,4,5,5,5,5,12,11,12,11,12,11,10,11,10,10,4
8,8,8,8,8,6,13,10,10,11,1,15,0,1,0,0,0,0,0,15,14,12,12,9,8,9,8,8,7,5
7,8,7,7,7,7,6,12,9,11,2,1,0,1,0,0,0,0,15,0,14,14,13,8,7,9,7,8,7,5
8,8,7,8,7,8,6,13,10,10,1,0,0,0,0,0,0,15,0,14,13,12,12,8,10,7,8,8,9,5
7,7,7,7,7,7,7,14,11,11,2,0,0,1,15,1,14,15,15,14,11,13,10,8,9,8,8,8,7,5
7,7,8,8,8,3,15,10,12,10,2,14,0,0,0,0,0,15,15,14,12,13,10,9,9,9,8,8,7,5
6,7,8,8,10,10,11,12,13,13,13,14,14,0,0,0,0,1,1,3,5,5,5,4,6,6,9,10,9,6
8,7,9,9,10,10,10,11,12,13,12,14,14,13,0,15,0,0,1,0,3,2,5,4,6,5,6,7,9,6
6,8,8,8,9,10,12,9,13,13,14,15,14,0,0,15,0,0,0,1,4,4,5,8,6,7,8,9,9,6
5,7,6,7,8,8,8,9,11,11,12,13,13,15,15,14,15,0,1,3,6,5,5,6,6,8,10,8,10,6
4,8,7,8,9,9,9,11,12,12,13,14,14,15,15,15,0,0,1,1,5,4,4,6,6,7,8,8,9,6
1,0,0,1,0,0,1,15,1,1,9,8,9,8,9,8,10,9,9,10,8,10,12,10,10,11,12,10,11,7
1,14,1,15,1,15,0,0,0,0,15,1,0,2,10,9,10,8,10,8,9,9,9,8,10,8,10,9,11,7
15,1,15,0,0,0,0,14,1,0,4,8,8,10,8,8,10,8,9,10,9,9,9,10,10,8,10,10,9,7
0,0,0,0,0,0,0,0,11,11,8,10,10,10,10,10,9,9,10,9,8,9,9,10,9,9,10,10,6,7
0,0,0,0,0,0,0,14,0,0,11,9,10,11,9,9,11,9,10,10,9,10,8,10,10,8,8,10,9,7
15,0,1,2,5,6,6,7,8,8,10,14,14,15,15,14,0,12,10,8,9,8,8,6,7,4,0,0,0,8
0,3,5,5,6,7,8,9,12,11,15,0,15,15,14,15,9,8,8,8,8,8,8,6,5,1,15,0,0,8
0,0,2,3,6,6,7,6,9,9,11,14,15,14,0,0,14,10,10,8,8,8,7,7,7,3,0,0,0,8
0,2,5,5,6,8,7,8,12,12,14,15,15,15,15,15,10,9,8,9,8,8,7,6,6,2,0,1,15,8
14,1,1,1,5,6,7,7,8,7,10,14,13,15,15,15,15,11,10,8,8,8,8,7,7,5,1,0,15,8
6,6,7,7,7,9,7,10,13,12,14,0,14,0,1,0,3,3,4,2,5,5,11,11,10,12,13,13,13,9
6,7,8,7,7,9,8,9,12,11,14,15,14,15,0,0,3,3,3,4,4,5,12,11,12,10,13,10,14,9
6,8,6,8,6,9,10,11,14,14,0,15,14,1,4,4,3,5,4,4,12,14,10,13,12,13,14,14,11,9
6,7,7,6,8,8,8,9,9,10,14,15,15,15,1,2,5,2,3,4,4,12,12,10,10,13,12,11,14,9
8,6,8,8,7,10,9,13,10,12,0,0,0,2,4,4,2,4,4,3,8,14,14,11,11,14,11,11,12,9
6,3,4,3,4,14,12,12,12,13,13,11,8,6,6,6,5,4,3,14,1,0,0,1,1,9,10,10,9,10
8,4,4,3,5,14,14,13,13,12,14,7,8,7,6,7,7,5,6,14,1,0,0,0,15,1,10,9,11,10
5,4,4,4,4,13,15,13,14,14,14,7,7,9,6,7,7,6,7,0,15,0,0,0,0,10,9,10,9,10
7,2,4,2,4,13,13,12,13,12,13,11,11,5,5,5,4,6,12,0,0,15,0,0,9,10,9,9,9,10
6,2,3,2,4,14,13,12,13,12,13,11,10,5,5,6,4,8,12,0,0,0,15,0,0,12,8,8,8,10
14,14,15,14,13,11,12,12,10,12,10,4,3,0,2,1,2,1,2,2,2,1,2,2,2,0,2,1,5,11
13,10,12,12,11,11,10,9,12,14,0,2,0,0,2,0,2,0,1,1,2,0,2,2,0,2,2,1,2,11
14,10,12,12,12,12,12,11,7,3,1,0,2,15,1,1,1,1,0,2,2,1,1,1,1,2,1,1,2,11
11,13,12,11,13,10,12,11,11,10,11,1,1,1,1,1,2,1,2,1,2,3,0,2,2,2,1,2,1,11
9,14,10,11,14,10,12,10,12,14,1,14,1,0,1,0,2,0,0,1,1,0,1,1,2,0,1,2,1,11
10,8,10,9,11,9,10,5,5,5,3,4,4,4,4,4,13,13,13,13,13,14,14,15,14,15,14,14,14,12
10,10,9,10,10,9,11,5,4,5,4,5,6,4,5,4,14,14,14,14,14,14,13,14,14,0,14,0,14,12
1,10,10,11,10,10,11,8,3,5,4,5,5,4,4,5,4,0,14,0,14,14,14,14,14,14,13,14,14,12
10,10,10,10,10,10,11,6,4,4,4,5,4,4,5,4,5,14,14,13,14,14,11,14,13,14,13,14,14,12
9,11,11,9,10,10,10,4,4,5,4,5,5,4,5,5,4,14,14,15,13,14,14,13,14,13,14,14,15,12
1,14,2,1,14,2,1,0,0,1,1,1,0,1,1,0,2,14,2,0,0,2,0,0,2,0,0,0,1,13
0,0,0,1,0,0,1,0,1,1,14,2,1,14,2,0,0,1,0,0,1,1,0,0,0,0,1,1,14,13
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,14,2,0,0,0,1,14,2,1,14,13
14,2,0,2,14,1,0,2,14,1,0,0,2,13,2,0,0,0,0,0,0,0,0,0,0,0,0,14,0,13
13,1,0,14,2,0,0,0,0,1,0,0,0,0,0,0,2,14,1,14,2,1,14,2,0,0,0,0,15,13
8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,10,6,9,6,10,6,8,8,10,10,15,14
10,5,10,8,8,8,10,6,9,8,8,8,10,6,9,8,8,8,8,8,8,8,8,8,8,8,8,9,6,14
8,6,8,8,8,8,8,6,8,7,10,6,8,8,7,8,8,7,8,8,8,10,8,0,15,0,0,15,1,14
8,8,8,9,8,8,8,8,8,9,6,9,9,6,9,8,8,6,9,6,10,8,9,6,6,9,4,10,14,14
8,9,9,8,8,9,10,5,10,6,10,8,8,8,8,6,10,5,9,6,10,8,8,8,6,10,8,9,6,14
4,6,7,6,8,8,9,12,12,12,13,14,14,15,15,0,15,0,0,0,15,14,9,8,9,7,8,8,8,15
5,3,6,6,6,8,8,8,9,10,15,14,14,14,15,14,15,12,12,8,8,9,7,8,7,8,6,6,3,15
6,4,5,6,6,6,7,7,9,8,11,12,13,0,14,14,14,14,13,14,10,9,8,8,8,7,6,6,4,15
6,5,6,6,6,7,7,9,13,12,14,15,14,15,15,14,15,12,10,7,8,8,6,8,6,7,5,6,5,15
4,5,6,5,6,8,7,10,11,11,12,14,15,15,15,15,15,14,15,12,11,9,8,8,8,8,8,8,7,15
6,7,6,7,8,9,9,10,11,12,12,12,13,12,14,14,14,0,14,0,0,15,1,2,2,4,4,4,5,0
7,8,9,9,10,11,12,11,12,12,12,12,13,14,14,15,14,0,15,1,2,2,4,4,3,4,3,3,6,0
7,6,9,9,9,11,10,12,11,11,11,12,13,13,14,14,14,0,14,0,0,0,0,2,2,4,3,3,4,0
7,6,8,8,8,10,10,10,12,11,12,12,12,13,14,12,15,14,0,14,0,0,15,2,2,2,4,3,2,0
8,8,10,10,10,12,10,12,12,12,13,12,11,14,14,14,14,0,0,14,2,0,3,2,3,3,4,3,5,0
1,0,3,0,10,13,10,10,12,13,12,10,10,14,10,13,10,12,10,11,12,12,10,13,12,13,10,10,14,1
4,15,9,12,10,13,10,13,10,12,10,12,10,11,12,10,11,10,10,10,10,10,12,10,8,12,12,10,2,1
0,8,11,10,13,9,10,9,11,12,9,12,10,12,12,10,12,10,12,12,12,13,10,12,12,12,10,12,3,1
14,8,13,13,10,12,10,12,12,13,10,12,10,13,10,12,12,10,10,13,10,9,14,9,10,12,10,6,2,1
12,12,12,12,12,10,12,10,13,10,12,10,12,12,10,10,13,10,10,12,10,10,14,10,10,14,10,12,13,1
14,13,12,13,12,11,13,10,10,9,9,8,8,7,6,7,6,4,4,1,15,15,15,15,15,14,14,0,14,2
0,14,12,12,12,11,11,10,9,9,9,8,8,8,6,7,5,3,4,0,0,15,15,15,15,15,14,15,13,2
0,1,14,0,14,13,12,13,10,10,9,8,8,8,8,8,7,7,7,5,1,1,0,0,15,0,15,15,14,2
2,15,0,15,14,11,12,12,10,11,9,8,9,8,8,7,7,6,6,2,15,0,0,15,0,14,15,0,13,2
1,0,15,15,14,12,13,10,10,11,9,9,9,8,8,8,7,5,6,4,0,1,14,15,0,13,0,15,14,2
1,0,15,0,15,13,13,12,10,9,9,9,8,8,7,7,0,0,0,0,0,15,15,11,12,9,7,7,8,3
15,14,13,13,11,12,10,10,8,9,8,8,8,2,15,1,0,1,0,11,8,9,6,8,8,6,6,6,6,3
0,14,13,14,11,12,10,11,9,8,9,7,8,7,2,0,0,1,0,0,14,12,11,8,8,9,8,8,8,3
15,13,13,12,12,11,10,9,8,9,8,6,8,1,0,0,1,1,15,1,14,12,9,9,8,9,8,8,8,3
0,14,13,14,12,11,12,10,9,9,8,7,7,6,0,0,1,0,1,0,13,13,10,10,9,8,8,8,7,3
10,13,11,11,12,10,8,0,15,0,0,15,0,15,0,7,3,5,4,3,4,3,10,13,11,10,11,11,11,4
12,11,11,10,1,0,15,1,15,15,1,15,0,10,4,3,5,3,6,4,10,12,11,11,11,11,11,11,11,4
13,10,12,12,9,1,0,0,0,14,1,15,0,10,5,4,4,3,3,3,3,3,12,14,12,11,12,11,12,4
11,12,11,10,1,15,0,0,0,15,0,12,8,3,4,3,5,3,3,12,12,10,13,11,12,10,12,11,10,4
11,12,11,9,1,15,15,0,15,15,0,14,14,6,4,3,4,1,4,0,10,10,11,11,12,10,11,10,12,4
8,7,14,12,11,13,11,12,4,2,2,2,2,1,1,0,15,14,13,15,11,12,10,11,10,9,7,8,6,5
8,6,8,8,7,10,13,12,11,12,7,0,0,0,0,0,0,0,15,1,14,14,10,7,8,8,7,8,7,5
7,8,8,7,8,7,10,12,11,11,12,2,1,1,15,1,14,0,0,14,14,14,9,8,9,6,9,8,7,5
12,10,12,2,3,0,1,0,0,0,14,13,14,12,10,10,10,10,10,9,8,9,8,8,8,8,6,7,6,5
8,7,8,8,6,8,5,15,10,14,10,3,2,1,0,0,15,15,15,13,14,13,9,13,11,8,10,9,7,5
10,10,9,11,11,12,12,13,14,14,0,15,0,0,0,0,15,2,2,3,5,4,4,5,5,5,6,5,7,6
8,8,9,9,13,11,12,13,14,14,15,14,0,14,0,0,1,5,3,6,5,6,7,6,6,8,7,8,9,6
6,7,8,9,8,9,9,11,10,12,11,13,13,15,14,0,15,0,0,1,3,2,5,4,5,8,8,9,9,6
6,8,9,8,9,9,10,11,10,11,11,13,14,0,15,0,15,1,0,1,4,3,6,6,6,8,8,8,9,6
6,7,8,9,9,9,10,9,12,11,12,13,13,14,0,15,0,0,0,1,2,2,4,6,6,9,7,8,8,6
1,0,1,0,7,10,11,8,12,10,12,9,12,10,12,10,12,10,12,10,10,12,9,10,10,14,10,10,13,7
4,8,10,12,9,12,10,12,10,9,12,10,10,13,9,10,10,10,10,13,10,13,10,9,12,9,13,11,5,7
10,8,10,12,8,10,8,10,8,10,10,10,12,10,9,12,8,12,10,11,10,10,11,8,9,11,10,10,12,7
0,2,15,1,7,9,7,10,8,10,10,8,10,9,11,11,8,12,10,10,10,11,10,10,11,10,10,10,13,7
1,0,7,6,9,8,9,9,10,10,8,12,10,10,10,12,9,11,11,9,11,10,13,9,11,10,11,9,13,7
0,1,6,4,8,7,8,7,11,11,15,14,14,14,14,15,15,13,12,8,9,8,9,7,8,7,3,3,1,8
3,6,7,7,8,9,9,14,14,14,15,14,14,13,14,13,10,8,8,8,8,7,7,6,6,4,1,2,15,8
1,6,8,6,8,8,9,12,14,14,14,14,14,13,10,10,9,7,8,8,6,6,6,2,1,0,1,1,2,8
2,5,8,7,8,8,8,13,15,15,15,14,15,14,13,12,12,8,8,8,6,8,6,6,6,2,1,1,2,8
1,6,6,6,9,8,8,13,0,14,14,14,14,14,13,14,9,8,9,7,8,7,6,3,4,2,0,0,2,8
8,10,12,12,14,15,14,15,0,15,3,5,2,5,4,4,3,4,10,12,12,11,12,10,11,11,11,10,11,9
5,5,6,6,8,8,8,8,11,10,12,12,12,14,0,0,15,2,3,2,4,3,11,11,11,11,11,12,10,9
7,9,9,9,9,14,13,0,0,1,0,2,0,2,1,3,9,10,9,12,9,9,13,9,11,10,12,10,15,9
8,8,9,9,9,11,10,13,14,13,0,1,2,2,2,2,2,1,2,4,10,10,12,9,12,10,11,12,10,9
7,9,8,8,10,10,10,15,0,0,0,0,1,0,2,2,4,3,2,9,11,10,9,10,9,11,10,9,13,9
9,13,10,8,3,2,2,0,2,0,2,0,2,0,2,0,2,14,2,0,1,0,2,0,1,1,0,1,0,11
12,10,12,10,13,11,12,12,13,12,13,14,12,15,12,1,1,2,0,2,0,2,3,0,2,0,2,0,2,11
15,13,0,14,2,13,0,8,4,3,1,3,3,1,3,2,2,2,2,2,2,4,0,2,2,14,2,2,0,11
1,7,6,6,4,2,1,5,2,0,2,1,2,2,0,1,2,0,1,1,0,0,2,15,1,0,0,0,10,11
8,6,6,6,4,5,3,1,4,2,4,0,2,0,2,2,2,0,0,1,1,1,2,1,2,0,0,1,8,11
4,3,5,5,2,14,14,12,13,12,13,8,6,8,6,7,7,6,6,0,15,0,0,1,0,0,0,14,8,10
3,1,2,2,11,13,12,12,11,6,7,7,7,6,7,6,14,15,0,0,0,15,14,0,15,8,10,8,9,10
5,3,4,4,3,2,1,13,13,13,12,12,11,6,6,7,6,7,6,15,0,0,0,0,0,0,9,9,9,10
1,3,1,2,10,13,13,11,11,4,7,6,6,6,7,15,15,0,0,0,0,15,0,8,8,9,9,8,10,10
8,3,2,2,11,13,12,12,15,5,7,6,6,6,8,7,15,0,0,0,0,14,1,10,9,9,9,9,9,10
10,9,9,9,10,9,10,8,10,9,3,4,4,4,4,3,4,2,3,2,15,14,13,12,14,12,14,14,14,12
15,10,11,10,11,10,10,9,8,7,7,5,5,5,3,4,3,3,4,1,14,15,13,14,14,13,14,14,14,12
9,9,9,10,10,10,10,9,9,8,2,3,3,3,3,2,3,3,3,0,12,14,13,14,13,14,13,14,13,12
9,12,10,11,9,9,10,10,8,4,3,4,4,2,3,2,4,2,4,13,14,14,13,14,13,14,13,13,0,12
10,9,10,10,10,9,10,9,2,3,3,3,3,4,2,2,2,2,2,12,14,13,12,14,13,12,13,13,13,12
0,14,1,0,14,2,1,2,14,0,14,0,0,2,15,15,2,0,0,14,1,14,1,10,7,8,8,9,6,13
1,14,2,14,2,14,14,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,14,0,15,2,8,8,13
0,2,14,0,0,1,0,0,1,14,2,0,1,0,0,1,14,2,0,0,0,0,0,0,0,0,1,0,0,13
0,2,15,0,2,15,15,2,0,0,1,0,0,2,15,0,2,15,15,2,0,0,1,8,8,8,8,8,8,13
14,1,0,14,2,14,0,0,0,14,1,0,14,1,0,1,14,2,0,0,0,2,13,2,0,0,0,5,8,13
8,8,8,8,8,8,9,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14
8,8,8,6,9,6,8,8,8,6,8,6,9,6,8,8,8,6,8,8,8,8,6,9,9,6,10,14,2,14
8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,8,6,8,8,6,10,14
8,8,8,8,6,8,8,6,8,6,9,6,8,6,8,7,9,6,8,7,14,0,1,15,0,15,1,0,14,14
8,6,7,7,9,6,8,6,8,8,6,7,8,5,8,8,6,8,7,8,7,8,6,15,12,15,14,14,2,14
6,5,8,7,8,10,9,13,12,12,15,0,15,0,0,0,14,15,14,10,10,9,9,8,8,8,7,6,6,15
4,7,8,8,9,11,9,13,12,14,0,15,0,1,0,0,14,13,12,12,10,9,9,7,7,9,6,5,2,15
8,7,8,8,10,10,12,11,14,14,1,15,0,0,15,0,15,13,12,12,10,9,8,8,8,7,5,5,5,15
12,10,12,11,13,15,15,0,0,0,0,0,0,13,0,15,14,13,14,11,6,8,8,6,7,6,5,7,6,15
7,10,10,10,11,10,12,14,0,15,15,0,14,0,0,14,0,14,13,0,12,12,10,8,9,8,8,8,8,15
5,15,3,1,1,2,2,15,2,2,2,9,12,10,13,12,11,13,10,13,11,11,13,10,12,10,12,12,10,1
14,3,0,2,2,2,0,2,4,4,12,12,12,14,11,11,14,12,12,12,12,11,14,10,12,12,11,12,10,1
2,2,2,2,2,1,4,1,9,10,12,12,11,12,12,11,11,12,12,12,11,12,12,12,10,12,10,12,9,1
1,1,1,3,0,2,1,2,11,11,10,12,12,10,12,11,13,10,12,10,11,12,10,11,12,10,10,10,10,1
2,2,2,0,3,12,12,9,13,12,10,12,12,12,10,12,10,11,12,8,12,10,13,10,11,13,10,10,8,1
1,0,15,0,14,12,12,12,10,11,10,9,9,9,6,8,5,5,5,0,0,0,15,14,13,13,11,10,14,2
1,0,14,14,13,10,12,10,10,10,8,9,8,8,7,6,5,1,2,15,15,15,15,12,13,10,13,13,0,2
5,5,1,1,15,13,13,10,10,10,10,9,7,10,6,7,4,3,3,15,15,15,13,13,12,13,0,15,2,2
3,0,14,14,12,10,11,9,10,9,8,7,8,6,7,6,4,3,3,0,15,14,12,13,12,14,15,15,2,2
6,3,1,2,15,13,14,10,12,12,9,9,9,8,8,8,7,4,5,2,0,0,15,14,14,13,12,12,1,2
2,15,15,14,12,10,9,9,8,8,7,7,7,0,1,0,0,14,14,11,10,11,8,7,7,8,7,8,5,3
1,14,12,13,12,10,9,7,8,8,8,1,1,0,15,0,15,11,12,10,9,9,8,7,7,7,7,6,7,3
1,14,13,14,11,10,10,8,8,8,7,7,2,2,0,0,14,10,11,12,10,8,9,8,8,6,6,7,6,3
1,15,12,13,12,10,10,7,8,8,7,1,1,2,15,0,14,13,13,11,10,10,8,8,7,8,6,7,7,3
2,1,14,0,14,10,11,10,9,9,6,8,8,6,0,0,1,0,15,12,11,11,9,9,9,7,7,6,6,3
11,10,11,10,0,0,0,0,0,0,15,0,15,6,6,4,6,3,4,15,10,12,10,13,12,10,11,10,13,4
10,10,12,11,11,0,0,0,15,15,15,0,14,3,5,5,4,5,4,12,9,11,10,12,11,12,11,10,13,4
7,10,10,11,9,0,0,15,0,15,0,0,0,14,2,1,5,6,7,3,10,10,12,12,13,10,12,11,12,4
10,11,10,11,8,15,0,0,0,0,15,0,0,14,1,6,5,5,5,5,13,11,12,12,12,12,12,12,12,4
8,13,9,10,10,13,0,15,0,0,15,0,0,15,6,6,5,4,6,3,11,12,10,12,11,11,11,12,11,4
7,7,8,10,10,12,11,11,1,3,2,0,1,15,15,0,14,11,12,11,9,9,8,8,8,7,6,7,6,5
7,6,8,6,12,11,12,10,13,11,12,12,12,3,3,1,2,0,1,15,0,15,15,14,14,12,12,13,10,5
6,8,6,7,12,12,10,13,9,0,3,0,2,15,15,15,13,12,12,10,10,10,9,8,8,8,6,6,5,5
8,6,8,8,8,7,0,12,12,10,3,1,1,0,15,0,1,14,15,12,10,10,9,8,9,8,7,8,7,5
8,6,7,7,10,13,12,12,10,15,4,1,2,0,15,0,15,14,12,13,10,11,9,8,7,8,9,8,6,5
8,9,9,10,8,11,9,12,11,10,13,10,12,14,15,0,0,0,0,0,2,4,4,5,4,7,7,7,8,6
8,9,8,8,10,9,10,11,12,12,11,14,14,15,0,0,0,0,0,2,4,3,5,6,6,7,7,6,9,6
7,9,9,9,9,10,10,11,12,12,13,14,14,0,15,0,0,1,1,4,3,4,5,6,6,8,9,9,7,6
9,9,10,9,8,10,9,12,11,10,13,14,15,14,0,14,3,0,0,4,3,3,6,6,6,8,7,8,7,6
9,8,10,9,10,10,10,12,12,12,13,15,14,0,0,0,0,0,1,1,4,4,4,6,6,6,8,8,8,6
15,1,0,0,1,0,15,2,0,0,1,0,0,9,10,10,10,10,9,12,9,11,10,11,9,13,10,12,10,7
1,14,1,0,1,15,0,0,0,0,1,15,0,0,8,8,8,8,9,8,10,10,8,10,10,10,10,10,10,7
0,0,0,0,0,15,0,0,0,0,0,0,2,15,7,8,8,10,7,12,10,9,10,10,9,11,12,10,11,7
0,0,0,15,1,15,0,0,0,0,0,0,14,0,8,9,10,10,10,12,10,10,12,10,10,10,10,10,9,7
1,14,1,15,1,15,1,14,1,0,0,0,0,6,12,12,9,11,10,10,10,10,13,10,10,10,10,10,10,7
13,0,2,2,4,7,7,8,9,9,10,14,13,2,0,15,11,10,9,8,6,8,6,4,5,3,0,0,15,8
8,7,5,5,3,1,0,15,13,13,10,8,9,8,9,8,10,13,13,1,15,0,15,1,1,4,5,5,8,8
8,4,3,4,1,13,13,14,10,10,8,9,9,10,13,11,15,0,15,0,1,1,1,3,3,4,7,7,8,8
7,6,4,4,0,15,0,13,13,11,12,9,9,7,8,9,7,10,8,12,15,15,0,1,0,1,1,2,6,8
9,6,5,6,4,4,4,0,14,14,0,14,14,9,11,9,6,8,7,11,10,11,14,0,15,1,1,0,4,8
2,5,7,7,8,10,10,10,12,12,15,15,15,15,3,3,4,4,5,3,10,10,12,12,11,12,10,11,11,9
5,7,8,8,8,11,12,10,14,13,0,14,15,0,1,1,4,3,3,4,4,6,11,8,10,11,12,11,11,9
4,7,8,7,10,10,11,10,13,13,15,15,0,15,2,2,2,5,4,4,4,5,13,10,12,12,11,11,12,9
4,6,6,6,8,7,6,10,10,11,11,13,14,14,0,15,1,1,2,3,4,4,11,10,10,13,12,11,12,9
4,5,6,7,6,10,10,12,12,12,14,13,14,14,1,0,3,3,3,4,4,6,12,11,12,12,13,13,12,9
10,12,10,10,12,10,12,9,12,11,2,14,0,0,0,0,1,1,1,0,0,1,0,1,1,0,1,1,2,11
10,9,13,12,0,0,1,0,1,0,2,14,1,1,0,0,2,14,2,0,1,0,1,1,14,2,14,0,1,11
8,6,10,10,10,10,10,15,1,1,14,1,15,2,0,0,1,0,0,1,0,0,1,0,1,0,2,1,0,11
8,10,10,9,11,8,14,1,0,0,14,1,0,1,0,1,14,2,15,2,0,0,2,0,1,14,2,0,2,11
9,10,10,8,10,11,12,9,0,2,14,0,1,0,0,15,2,0,0,2,0,0,1,0,0,2,0,0,1,11
8,8,8,8,8,8,5,10,5,9,6,8,8,8,6,6,8,8,8,8,6,8,8,6,8,6,6,8,6,14
6,8,8,8,5,9,6,9,6,8,6,9,6,10,6,6,6,8,8,6,9,8,8,8,6,10,6,6,7,14
10,5,9,8,8,8,8,6,9,8,8,8,8,8,8,6,10,8,8,8,8,8,8,8,8,8,8,8,8,14
8,8,6,8,8,8,8,8,8,9,6,8,8,8,8,8,8,8,6,10,6,8,8,8,6,10,6,8,8,14
6,9,6,8,8,6,8,8,6,8,8,8,6,10,6,8,8,8,9,6,8,8,8,8,9,6,8,9,8,14
2,14,1,1,14,2,0,0,0,0,0,1,0,0,0,1,0,0,2,14,1,0,2,14,0,0,1,0,15,13
14,2,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,2,14,0,0,0,2,14,1,15,2,13
0,0,0,1,0,0,0,0,1,0,0,0,14,2,0,0,0,0,0,2,14,1,14,2,0,0,0,14,1,13
0,0,1,14,2,0,0,2,14,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,2,14,1,0,0,13
2,0,0,0,0,0,0,0,0,2,14,1,0,2,14,14,2,0,0,0,0,14,2,0,0,0,0,0,15,13
6,6,7,7,8,8,8,9,10,10,11,12,12,13,13,13,14,15,15,15,0,0,1,4,3,4,4,5,2,0
3,4,4,4,5,7,7,8,9,8,10,10,11,10,13,12,13,14,14,14,15,0,15,0,1,4,4,3,5,0
6,8,6,8,7,8,8,9,10,10,13,11,13,12,14,14,15,14,15,15,0,0,1,3,4,2,5,4,5,0
0,2,5,4,5,6,7,6,8,8,9,8,9,10,12,12,11,13,12,13,14,13,14,15,15,15,2,1,1,0
7,8,7,8,9,9,9,11,12,12,14,14,15,14,15,14,14,11,11,7,8,8,8,6,6,6,5,6,3,15
6,6,8,7,7,9,9,11,13,12,13,15,14,0,14,15,15,14,14,9,7,8,7,7,6,7,5,6,4,15
6,9,6,8,8,10,10,12,13,13,13,15,15,15,15,15,0,15,15,12,7,9,8,7,7,7,6,6,5,15
15,5,4,5,5,8,8,7,10,10,13,13,12,14,15,15,15,13,13,11,8,7,9,6,7,6,6,5,4,15
10,10,9,11,9,10,10,8,7,8,5,5,5,5,3,3,5,2,2,0,15,14,14,13,14,13,12,12,13,12
10,11,10,12,10,10,10,12,9,7,7,6,4,6,4,4,4,4,2,2,0,0,14,15,14,13,14,14,14,12
8,10,10,10,10,11,10,12,10,10,8,5,6,4,4,4,4,4,3,4,0,0,15,14,14,14,14,14,13,12
7,11,9,10,11,10,11,13,10,10,12,6,6,4,5,4,4,5,4,5,2,0,2,14,15,14,13,13,15,12
10,10,10,10,12,10,12,12,7,6,6,4,4,6,4,4,4,4,3,1,14,14,13,13,13,15,13,14,13,12
2,4,2,3,0,13,14,14,12,13,6,8,6,8,6,7,6,8,0,0,0,0,0,1,0,7,9,9,8,10
1,4,2,3,2,13,13,13,12,13,6,6,7,6,7,6,7,7,0,0,0,0,15,0,0,8,10,8,10,10
4,4,4,3,4,13,12,12,12,12,13,6,6,6,7,7,7,15,0,0,0,0,0,0,0,9,9,9,9,10
4,3,4,3,4,13,13,12,13,13,13,6,6,7,6,7,0,0,0,0,0,0,0,8,9,9,8,10,9,10
4,4,4,2,4,13,12,12,12,12,13,6,6,6,6,6,8,15,15,0,0,0,0,0,0,8,10,9,9,10
4,4,5,5,6,8,8,9,10,10,11,11,11,12,12,11,12,14,14,15,0,0,0,1,2,5,3,4,3,0
5,6,7,7,8,9,9,10,12,11,13,15,0,15,0,0,0,15,15,1,14,12,10,8,7,8,8,7,8,15
direction
int

0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
8
8
8
8
8
7
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
3
1
3
1
3
1
3
1
3
1
4
1
4
1
4
1
4
1
4
1
5
1
5
1
5
1
5
1
5
7
7
9
9
9
9
9
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
0
1
0
1
0
1
0
1
0
1
5
1
5
1
5
1
5
1
5
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
4
1
3
1
4
1
4
1
4
1
3
1
3
1
3
1
3
0
0
0
0
0
1
4
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
0
9
0
9
0
9
0
0
1
5
1
5
1
5
1
5
1
5
1
0
1
0
1
0
1
0
1
0
1
2
1
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
5
1
5
1
5
1
5
1
5
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
1
2
1
1
1
1
2
2
2
3
3
3
3
3
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
5
1
5
1
5
1
5
1
5
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
2
4
1
1
1
1
1
2
2
2
2
1
3
1
3
1
3
1
3
1
3
1
4
1
4
1
4
1
4
1
4
1
1
1
1
1
1
1
1
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
9
9
9
9
9
0
0
0
0
0
1
5
1
5
1
5
1
5
1
5
1
2
1
2
1
2
1
2
1
2
1
0
1
0
1
0
1
0
1
0
2
8
8
1
1
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
5
1
5
1
5
1
5
1
5
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
1
1
1
1
1
0
0
0
0
0
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
0
1
0
1
0
1
0
1
0
1
2
1
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
3
1
3
1
3
1
3
1
3
1
4
1
4
1
4
1
4
1
4
1
5
1
5
1
5
1
5
1
5
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
2
1
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
5
1
5
1
5
1
5
1
5
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
1
1
3
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
0
1
0
1
0
1
0
1
0
1
2
1
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
5
1
5
1
5
1
5
1
5
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
5
5
5
5
5
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
6
6
6
6
6
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
2
1
2
1
2
1
2
1
2
1
5
1
5
1
5
1
5
1
3
1
3
1
3
1
3
1
3
1
4
1
4
1
4
1
4
1
4
1
5
4
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
5
1
5
1
5
1
5
1
5
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
9
9
9
9
9
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
1
5
1
5
1
5
1
5
1
5
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
0
1
0
1
0
1
0
1
0
6
6
5
5
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
5
1
5
1
5
1
5
1
5
1
2
1
2
1
2
1
2
1
2
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
3
1
3
1
3
1
3
1
3
1
4
1
4
1
4
1
4
1
4
1
5
1
5
1
5
1
5
1
5
0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
2
1
2
1
2
1
2
1
2
1
3
1
3
1
3
1
3
1
3
1
4
1
4
1
4
1
4
1
4
1
5
1
5
1
5
1
5
1
5
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
1
1
1
1
1
1
1
1
1
1
1
4
1
4
1
4
1
4
1
4
1
3
1
3
1
3
1
3
1
3
0
0
0
0
1
5
1
5
1
5
1
5
1
2
1
2
1
2
1
2
1
2
1
0
1
0
1
0
1
0
1
0
0
1
5
import csv, os
from nupic.frameworks.opf.modelfactory import ModelFactory
from nupic.swarming import permutations_runner
from sklearn import cross_validation
import numpy as np

DIRECTIONS = 16
TRAINING_PASSES = 1
FIELD_NAME = "direction"
FILE_NAME = "hits_dir_agg.txt"
FILE_NAME2 = "hits_dir_serial_agg.csv"
FILE_PATH = os.path.join(os.getcwd(), "data", FILE_NAME)

SWARM_CONFIG = {
    "includedFields": [
        {
            "fieldName": FIELD_NAME,
            "fieldType": "int",
            "maxValue": 15,
            "minValue": 0
        }
    ],
    "streamDef": {
        "info": FIELD_NAME,
        "version": 1,
        "streams": [
            {
                "info": FILE_NAME2,
                "source": "file://" + FILE_NAME2,
                "columns": [
                    "*"
                ]
            }
        ]
    },
    "inferenceType": "TemporalAnomaly",
    "inferenceArgs": {
        "predictionSteps": [
            1
        ],
        "predictedField": FIELD_NAME
    },
    "swarmSize": "medium"
}


def swarm_over_data(overwrite=True):
    if overwrite:
        return permutations_runner.runWithConfig(SWARM_CONFIG, {'maxWorkers': 8, 'overwrite': True})
    else:
        try:
            from description import config as model_params
            return model_params
        except ImportError:
            print "No model parameters available. Running swarm..."
            return permutations_runner.runWithConfig(SWARM_CONFIG, {'maxWorkers': 8, 'overwrite': True})


def prepare_for_swarm(file_name, file_name2):
    reader = csv.reader(open(os.path.join(os.getcwd(), "data", file_name), 'rb'))
    data = []
    for row in reader:
        for r in row[-1]:
            data.append(int(r))

    writer = csv.writer(open(os.path.join(os.getcwd(), file_name2), 'wb'))
    writer.writerow([FIELD_NAME])
    writer.writerow(['int'])
    writer.writerow('')

    for x in data:
        writer.writerow([x])


def run_experiment():
    print "Running experiment..."

    model = [0]*16
    for i in range(0, 16):
        model[i] = ModelFactory.create(model_params, logLevel=0)
        model[i].enableInference({"predictedField": FIELD_NAME})

    with open(FILE_PATH, "rb") as f:
        csv_reader = csv.reader(f)
        data = []
        labels = []
        for row in csv_reader:
            r = [int(item) for item in row[:-1]]
            data.append(r)
            labels.append(int(row[-1]))

        # data_train, data_test, labels_train, labels_test = cross_validation.train_test_split(data, labels, test_size=0.4, random_state=0)
        data_train = data
        data_test = data
        labels_train = labels
        labels_test = labels

    for passes in range(0, TRAINING_PASSES):
        sample = 0
        for (ind, row) in enumerate(data_train):
            for r in row:
                value = int(r)
                result = model[labels_train[ind]].run({FIELD_NAME: value, '_learning': True})
                prediction = result.inferences["multiStepBestPredictions"][1]
                anomalyScore = result.inferences["anomalyScore"]
            model[labels[ind]].resetSequenceStates()
            sample += 1
            print "Processing training sample %i" % sample
            # if sample == 100:
            #     break

    sample = 0
    labels_predicted = []
    for row in data_test:
        anomaly = [0]*16
        for i in range(0, 16):
            model[i].resetSequenceStates()
            for r in row:
                value = int(r)
                result = model[i].run({FIELD_NAME: value, '_learning': False})
                prediction = result.inferences["multiStepBestPredictions"][1]
                anomalyScore = result.inferences["anomalyScore"]
                # print value, prediction, anomalyScore
                if value == int(prediction) and anomalyScore == 0:
                    # print "No prediction made"
                    anomalyScore = 1
                anomaly[i] += anomalyScore
            anomaly[i] /= len(row)
        sample += 1
        print "Processing testing sample %i" % sample
        labels_predicted.append(np.min(np.array(anomaly)))
        print anomaly, row[-1]
        # if sample == 100:
        #     break

    accuracy = np.sum(np.array(labels_predicted) == np.array(labels_test))*100.0/len(labels_test)
    print "Testing accuracy is %0.2f" % accuracy

if __name__ == "__main__":
    prepare_for_swarm(FILE_NAME, FILE_NAME2)
    model_params = swarm_over_data(overwrite=False)
    run_experiment()

On Dec 11, 2014, at 7:16 PM, Matthew Taylor <[email protected]> wrote:

Nicholas, can you paste a sample of the input data file?

---------
Matt Taylor
OS Community Flag-Bearer
Numenta

On Thu, Dec 11, 2014 at 7:50 AM, Nicholas Mitri <[email protected]> wrote:
Hey all, 

I’m running into some trouble with using HTM for a gesture recognition application and would appreciate some help. 
First, the data is collected from 17 users performing 5 gestures of each of 16 different gesture classes using motion sensors. The feature vector for each sample is a sequence of discretized directions calculated using bezier control points after curve fitting the gesture trace. 

For a baseline, I fed the data to 16 10-state HMMs for training and again for testing. The classification accuracy achieved is 95.7%. 

For HTM, I created 16 CLA models using parameters from a medium swarm. I ran the data through the models for training where each model is trained on only 1 gesture class. For testing, I fed the same data again with learning turned off and recorded the anomaly score (averaged across each sequence) for each model. Classification was done by seeking the model with the minimum anomaly score. Accuracy turned out to be a puzzling 0.0%!!

Below is the relevant section of the code. I would appreciate any hints. 
Thanks,
Nick

def run_experiment():
    print "Running experiment..."

    model = [0]*16
    for i in range(0, 16):
        model[i] = ModelFactory.create(model_params, logLevel=0)
        model[i].enableInference({"predictedField": FIELD_NAME})

    with open(FILE_PATH, "rb") as f:
        csv_reader = csv.reader(f)
        data = "">
        labels = []
        for row in csv_reader:
            r = [int(item) for item in row[:-1]]
            data.append(r)
            labels.append(int(row[-1]))

        # data_train, data_test, labels_train, labels_test = cross_validation.train_test_split(data, labels, test_size=0.4, random_state=0)
        data_train = data
        data_test = data
        labels_train = labels
        labels_test = labels

    for passes in range(0, TRAINING_PASSES):
        sample = 0
        for (ind, row) in enumerate(data_train):
            for r in row:
                value = int(r)
                result = model[labels_train[ind]].run({FIELD_NAME: value, '_learning': True})
                prediction = result.inferences["multiStepBestPredictions"][1]
                anomalyScore = result.inferences["anomalyScore"]
            model[labels[ind]].resetSequenceStates()
            sample += 1
            print "Processing training sample %i" % sample
            if sample == 100:
                break

    sample = 0
    labels_predicted = []
    for row in data_test:
        anomaly = [0]*16
        for i in range(0, 16):
            model[i].resetSequenceStates()
            for r in row:
                value = int(r)
                result = model[i].run({FIELD_NAME: value, '_learning': False})
                prediction = result.inferences["multiStepBestPredictions"][1]
                anomalyScore = result.inferences["anomalyScore"]
                # print value, prediction, anomalyScore
                if value == int(prediction) and anomalyScore == 0:
                    # print "No prediction made"
                    anomalyScore = 1
                anomaly[i] += anomalyScore
            anomaly[i] /= len(row)
        sample += 1
        print "Processing testing sample %i" % sample
        labels_predicted.append(np.min(np.array(anomaly)))
        print anomaly, row[-1]
        if sample == 100:
            break

    accuracy = np.sum(np.array(labels_predicted) == np.array(labels_test))*100.0/len(labels_test)
    print "Testing accuracy is %0.2f" % accuracy



Reply via email to