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