class Matrix {

  @Override
  public String toString() {
    return "Matrix{" + "width=" + width + ", height=" + height + ", matrix=" + matrix + '}';
  }

  public  Matrix(int height, int width, IntFunction<ArrayList<T>> rowBuilder);
  public  Matrix(Matrix<T> other);
  public  Matrix(int height, int width, ArrayList<ArrayList<T>> matrix);

}