sage: MK1
=
Matrix(ZZ,
64
*
2
+
48
+
1
,
64
*
2
+
48
+
1
)
sage:
for
i
in
range
(
64
):
....: MK1[i,i]
=
127
*
127
*
127
*
127
*
127
....: MK1[i
+
64
+
48
,i
+
64
+
48
]
=
127
*
127
*
2
....: MK1[i
+
64
+
48
,i]
=
29
*
127
*
127
*
127
*
127
....:
....:
sage:
for
i
in
range
(
16
):
....:
for
j
in
range
(
32
):
....: MK1[i
+
64
,j]
=
ZZ(A[j,i])
*
127
*
127
*
127
*
127
....: MK1[i
+
64
,j
+
32
]
=
ZZ(B[j,i])
*
127
*
127
*
127
*
127
....: MK1[i
+
64
+
16
,j]
=
ZZ(A[j,i
+
16
])
*
127
*
127
*
127
*
127
....: MK1[i
+
64
+
32
,j
+
32
]
=
ZZ(B[j,i
+
16
])
*
127
*
127
*
127
*
127
....: MK1[i
+
64
,i
+
64
]
=
1
....: MK1[i
+
64
+
16
,i
+
64
+
16
]
=
1
....: MK1[i
+
64
+
32
,i
+
64
+
32
]
=
1
....:
sage: MK1[
-
1
,
-
65
:
-
1
]
=
vector([
127
*
127
]
*
64
)
sage: MK1[
-
1
,
64
:
64
+
48
]
=
vector([
0
]
*
48
)
sage: MK1[
-
1
,:
64
]
=
vector(ZZ,ans1
+
ans2)
*
127
*
127
*
127
*
127
sage: MK1[
-
1
,
-
1
]
=
127
sage: ANS
=
MK1.LLL()
sage:
for
i
in
ANS:
....:
if
i[
-
1
]
in
{
127
,
-
127
} :
....: i[:
64
],
-
i[
64
:
64
+
48
]
*
i[
-
1
]
/
abs
(i[
-
1
]),i[
-
65
:]
/
(
127
*
i[
-
1
])
....:
....:
((
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
),
(
-
15
,
50
,
36
,
13
,
-
33
,
-
37
,
29
,
14
,
2
,
28
,
4
,
-
26
,
-
18
,
43
,
-
3
,
-
51
,
-
56
,
40
,
23
,
-
61
,
9
,
46
,
-
26
,
36
,
25
,
-
63
,
25
,
-
62
,
47
,
-
62
,
31
,
-
62
,
35
,
25
,
-
33
,
-
40
,
-
58
,
-
34
,
53
,
27
,
3
,
41
,
-
35
,
7
,
48
,
-
8
,
-
12
,
56
),
(
-
1
,
1
,
1
,
-
1
,
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
1
,
-
1
,
-
1
,
-
1
,
1
,
1
,
1
,
1
,
1
,
-
1
,
-
1
,
-
1
,
-
1
,
1
,
1
,
-
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
-
1
,
1
,
-
1
,
1
,
1
,
1
,
1
,
1
,
-
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
-
1
,
-
1
,
1
,
-
1
,
-
1
,
-
1
,
-
1
,
1
,
1
,
1
,
1
,
-
1
,
1
,
1
,
1
/
127
))
((
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
),
(
55
,
-
37
,
-
40
,
-
31
,
5
,
23
,
-
52
,
12
,
-
54
,
17
,
31
,
60
,
-
13
,
-
17
,
4
,
35
,
-
55
,
-
5
,
14
,
-
36
,
61
,
-
57
,
-
18
,
-
36
,
-
39
,
-
7
,
15
,
-
46
,
9
,
-
51
,
-
13
,
20
,
8
,
48
,
31
,
30
,
-
33
,
53
,
31
,
20
,
20
,
44
,
16
,
-
37
,
4
,
-
58
,
58
,
36
),
(
1
,
3
,
1
,
5
,
5
,
-
5
,
5
,
-
3
,
1
,
1
,
1
,
-
3
,
-
1
,
-
1
,
1
,
-
3
,
1
,
1
,
-
1
,
-
3
,
-
3
,
3
,
-
3
,
-
3
,
1
,
-
3
,
-
3
,
1
,
5
,
3
,
1
,
-
3
,
-
5
,
-
3
,
1
,
1
,
1
,
-
1
,
1
,
-
1
,
-
1
,
-
1
,
3
,
3
,
3
,
-
3
,
1
,
-
1
,
1
,
-
1
,
1
,
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
1
,
3
,
1
,
1
,
-
1
,
1
,
1
,
1
/
127
))
……