with(LinearAlgebra);
Digits := 50;
m := Matrix(1..59,1..59,fill=0);
m[1,2] := m[1,2] + 1;
m[1,3] := m[1,3] + 1;
m[2,4] := m[2,4] + 1;
m[2,5] := m[2,5] + 1;
m[3,6] := m[3,6] + 1;
m[3,7] := m[3,7] + 1;
m[4,8] := m[4,8] + 1;
m[4,9] := m[4,9] + 1;
m[5,10] := m[5,10] + 1;
m[5,11] := m[5,11] + 1;
m[6,12] := m[6,12] + 1;
m[6,13] := m[6,13] + 1;
m[7,14] := m[7,14] + 1;
m[7,15] := m[7,15] + 1;
m[8,16] := m[8,16] + 1;
m[8,9] := m[8,9] + 1;
m[9,17] := m[9,17] + 1;
m[9,18] := m[9,18] + 1;
m[10,19] := m[10,19] + 1;
m[10,20] := m[10,20] + 1;
m[11,14] := m[11,14] + 1;
m[11,21] := m[11,21] + 1;
m[12,22] := m[12,22] + 1;
m[12,9] := m[12,9] + 1;
m[13,23] := m[13,23] + 1;
m[13,24] := m[13,24] + 1;
m[14,25] := m[14,25] + 1;
m[14,26] := m[14,26] + 1;
m[15,14] := m[15,14] + 1;
m[15,27] := m[15,27] + 1;
m[16,28] := m[16,28] + 1;
m[16,29] := m[16,29] + 1;
m[17,28] := m[17,28] + 1;
m[17,20] := m[17,20] + 1;
m[18,30] := m[18,30] + 1;
m[18,21] := m[18,21] + 1;
m[19,22] := m[19,22] + 1;
m[19,31] := m[19,31] + 1;
m[20,28] := m[20,28] + 1;
m[20,24] := m[20,24] + 1;
m[21,28] := m[21,28] + 1;
m[21,32] := m[21,32] + 1;
m[22,32] := m[22,32] + 1;
m[22,28] := m[22,28] + 1;
m[23,19] := m[23,19] + 1;
m[23,28] := m[23,28] + 1;
m[24,33] := m[24,33] + 1;
m[24,21] := m[24,21] + 1;
m[25,22] := m[25,22] + 1;
m[25,34] := m[25,34] + 1;
m[26,23] := m[26,23] + 1;
m[26,28] := m[26,28] + 1;
m[27,35] := m[27,35] + 1;
m[27,28] := m[27,28] + 1;
m[28,28] := m[28,28] + 1;
m[28,28] := m[28,28] + 1;
m[29,36] := m[29,36] + 1;
m[29,37] := m[29,37] + 1;
m[30,28] := m[30,28] + 1;
m[30,26] := m[30,26] + 1;
m[31,28] := m[31,28] + 1;
m[31,18] := m[31,18] + 1;
m[32,28] := m[32,28] + 1;
m[32,28] := m[32,28] + 1;
m[33,25] := m[33,25] + 1;
m[33,28] := m[33,28] + 1;
m[34,17] := m[34,17] + 1;
m[34,28] := m[34,28] + 1;
m[35,38] := m[35,38] + 1;
m[35,39] := m[35,39] + 1;
m[36,28] := m[36,28] + 1;
m[36,40] := m[36,40] + 1;
m[37,41] := m[37,41] + 1;
m[37,21] := m[37,21] + 1;
m[38,22] := m[38,22] + 1;
m[38,42] := m[38,42] + 1;
m[39,43] := m[39,43] + 1;
m[39,28] := m[39,28] + 1;
m[40,28] := m[40,28] + 1;
m[40,44] := m[40,44] + 1;
m[41,28] := m[41,28] + 1;
m[41,45] := m[41,45] + 1;
m[42,46] := m[42,46] + 1;
m[42,28] := m[42,28] + 1;
m[43,47] := m[43,47] + 1;
m[43,28] := m[43,28] + 1;
m[44,48] := m[44,48] + 1;
m[44,21] := m[44,21] + 1;
m[45,49] := m[45,49] + 1;
m[45,28] := m[45,28] + 1;
m[46,28] := m[46,28] + 1;
m[46,50] := m[46,50] + 1;
m[47,22] := m[47,22] + 1;
m[47,51] := m[47,51] + 1;
m[48,52] := m[48,52] + 1;
m[48,28] := m[48,28] + 1;
m[49,53] := m[49,53] + 1;
m[49,28] := m[49,28] + 1;
m[50,28] := m[50,28] + 1;
m[50,54] := m[50,54] + 1;
m[51,28] := m[51,28] + 1;
m[51,55] := m[51,55] + 1;
m[52,32] := m[52,32] + 1;
m[52,56] := m[52,56] + 1;
m[53,32] := m[53,32] + 1;
m[53,57] := m[53,57] + 1;
m[54,58] := m[54,58] + 1;
m[54,32] := m[54,32] + 1;
m[55,59] := m[55,59] + 1;
m[55,32] := m[55,32] + 1;
m[56,36] := m[56,36] + 1;
m[56,28] := m[56,28] + 1;
m[57,28] := m[57,28] + 1;
m[57,37] := m[57,37] + 1;
m[58,38] := m[58,38] + 1;
m[58,28] := m[58,28] + 1;
m[59,28] := m[59,28] + 1;
m[59,39] := m[59,39] + 1;
u := Vector[row](59,fill=0);
u[1] := 1;
v := Vector[column](59,fill=0);
v[1] := 1;
v[2] := 1;
v[3] := 1;
v[4] := 1;
v[5] := 1;
v[6] := 1;
v[7] := 1;
v[8] := 1;
v[9] := 1;
v[10] := 1;
v[11] := 1;
v[12] := 1;
v[13] := 1;
v[14] := 1;
v[15] := 1;
v[16] := 1;
v[17] := 1;
v[18] := 1;
v[19] := 1;
v[20] := 1;
v[21] := 1;
v[22] := 1;
v[23] := 1;
v[24] := 1;
v[25] := 1;
v[26] := 1;
v[27] := 1;
v[29] := 1;
v[30] := 1;
v[31] := 1;
v[32] := 1;
v[33] := 1;
v[34] := 1;
v[35] := 1;
v[36] := 1;
v[37] := 1;
v[38] := 1;
v[39] := 1;
v[40] := 1;
v[41] := 1;
v[42] := 1;
v[43] := 1;
v[44] := 1;
v[45] := 1;
v[46] := 1;
v[47] := 1;
v[48] := 1;
v[49] := 1;
v[50] := 1;
v[51] := 1;
v[52] := 1;
v[53] := 1;
v[54] := 1;
v[55] := 1;
v[56] := 1;
v[57] := 1;
v[58] := 1;
v[59] := 1;
p := MinimalPolynomial(m,x);
factor(p);
