# Реализуйте класс Matrix. Он должен содержать:

# Конструктор от списка списков. Гарантируется, что списки состоят из чисел, не пусты и все имеют одинаковый #размер. Конструктор должен копировать содержимое списка списков, т.е. при изменении списков, от которых была #сконструирована матрица, содержимое матрицы изменяться не должно.


# Метод __str__ переводящий матрицу в строку. При этом элементы внутри одной строки должны быть разделены знаками # табуляции, а строки — переносами строк. При этом после каждой строки не должно быть символа табуляции и в конце # не должно быть переноса строки.
# Метод size без аргументов, возвращающий кортеж вида (число строк, число столбцов)


# Примеры:
# Тест 1
# Входные данные:
# Task 1 check 1
# m = Matrix([[1, 0], [0, 1]])
# print(m)
# m = Matrix([[2, 0, 0], [0, 1, 10000]])
# print(m)
# m = Matrix([[-10, 20, 50, 2443], [-5235, 12, 4324, 4234]])
# print(m)


# Вывод программы:
#1	0
#0	1
#2	0	0
#0	1	10000
#-10	20	50	2443
#-5235	12	4324	4234

# Нагуглил такой код но он проходит 40/100
from sys import stdin


class Matrix(object):
    def __init__(self, matrix):
        self.matrix = matrix

    def __str__(self):
        return '\n'.join([''.join(['%d\t' % i for i in row])
                          for row in self.matrix])

    @property
    def size(self):
        rows = len(self.matrix)
        cols = 0
        for row in self.matrix:
            if len(row) > cols:
                cols = len(row)

        return (rows, cols)


exec(stdin.read())