def zeros_mat(r, c):
    """
    r by c matrix full of zeroes
        :param r: rows of matrix
        :param c: columns of matrix
        :return: 2D array of the matrix (list containing elements of each row)
    """
    A = []
    while len(A) < r:
        A.append([])  # Generate Row
        while len(A[-1]) < c:  # traverse the columns until the last row is reached
            A[-1].append(0)  # initialize all column values to 0 until the last row is reached
    return A