with(LinearAlgebra);
Digits := 50;
m := Matrix(1..20,1..20,fill=0);
m[1,2] := m[1,2] + 1;
m[1,3] := m[1,3] + 1;
m[1,4] := m[1,4] + 1;
m[2,5] := m[2,5] + 1;
m[2,6] := m[2,6] + 1;
m[2,7] := m[2,7] + 1;
m[3,8] := m[3,8] + 1;
m[3,9] := m[3,9] + 1;
m[3,10] := m[3,10] + 1;
m[4,11] := m[4,11] + 1;
m[4,12] := m[4,12] + 1;
m[4,13] := m[4,13] + 1;
m[5,14] := m[5,14] + 1;
m[5,6] := m[5,6] + 1;
m[5,7] := m[5,7] + 1;
m[6,14] := m[6,14] + 1;
m[6,15] := m[6,15] + 1;
m[6,10] := m[6,10] + 1;
m[7,14] := m[7,14] + 1;
m[7,12] := m[7,12] + 1;
m[7,16] := m[7,16] + 1;
m[8,17] := m[8,17] + 1;
m[8,14] := m[8,14] + 1;
m[8,7] := m[8,7] + 1;
m[9,8] := m[9,8] + 1;
m[9,14] := m[9,14] + 1;
m[9,10] := m[9,10] + 1;
m[10,11] := m[10,11] + 1;
m[10,14] := m[10,14] + 1;
m[10,18] := m[10,18] + 1;
m[11,19] := m[11,19] + 1;
m[11,6] := m[11,6] + 1;
m[11,14] := m[11,14] + 1;
m[12,8] := m[12,8] + 1;
m[12,20] := m[12,20] + 1;
m[12,14] := m[12,14] + 1;
m[13,11] := m[13,11] + 1;
m[13,12] := m[13,12] + 1;
m[13,14] := m[13,14] + 1;
m[14,14] := m[14,14] + 1;
m[14,14] := m[14,14] + 1;
m[14,14] := m[14,14] + 1;
m[15,14] := m[15,14] + 1;
m[15,14] := m[15,14] + 1;
m[15,10] := m[15,10] + 1;
m[16,14] := m[16,14] + 1;
m[16,12] := m[16,12] + 1;
m[16,14] := m[16,14] + 1;
m[17,14] := m[17,14] + 1;
m[17,14] := m[17,14] + 1;
m[17,7] := m[17,7] + 1;
m[18,11] := m[18,11] + 1;
m[18,14] := m[18,14] + 1;
m[18,14] := m[18,14] + 1;
m[19,14] := m[19,14] + 1;
m[19,6] := m[19,6] + 1;
m[19,14] := m[19,14] + 1;
m[20,8] := m[20,8] + 1;
m[20,14] := m[20,14] + 1;
m[20,14] := m[20,14] + 1;
u := Vector[row](20,fill=0);
u[1] := 1;
v := Vector[column](20,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[15] := 1;
v[16] := 1;
v[17] := 1;
v[18] := 1;
v[19] := 1;
v[20] := 1;
p := MinimalPolynomial(m,x);
factor(p);
