import java.util.Vector;
import java.lang.Integer;
//import java.lang.Float;
//import java.lang.Byte;
//import java.lang.Boolean;

public class Matrix    extends Vector<Vector<Integer>> {
   
	Matrix () {
    }

	Matrix(vv) {
    	Integer i;
    	i = 0;
	  while(i < vv.size()) {
//	    	Boolean a = this.add(vv.elementAt(i));
		  this.add(vv.elementAt(i));
		  i=i+1;
	  } 
    }

    mul(m) {
        var ret = new Matrix();
        var i = 0;
        while(i < size()) {
            var v1 = this.elementAt(i);
            var v2 = new Vector<Integer>();
            var j = 0;
            while(j < v1.size()) {
                var erg = 0;
                var k = 0;
                while(k < v1.size()) {
                    erg = erg + v1.elementAt(k)
                             * m.elementAt(k).elementAt(j);
                    k++; }
//                v2.addElement(new Integer(erg));
                v2.addElement(erg);
                j++; }
            ret.addElement(v2);
            i++; 
         }
        return ret;
    }
}