load "solve.m";

t  := Cputime();

print "Loading the matrix A...";
load "19-matrix.m";
d  := Round(Sqrt(#A));
M  := MatrixAlgebra(RationalField(),d);
V  := VectorSpace(RationalField(),d);

print "Loading vector v...";
load "19-vector.m";
v := V!v;

print "Computing the inverse matrix...";
A := M!A;

// WARNING!
A := Transpose(A);

print "Computing answer...";
w := solve_mod_primes(A,v, [p : p in [2..50] | IsPrime(p)]);

print "Total time =",Cputime(t);



