def matmul(X, Y):
i, k1 = len(X), len(X[0])
k2, j = len(Y), len(Y[0])
if k1 != k2 :
print("size error!")
return None
return [[sum([x_ik*y_kj for x_ik, y_kj in zip(x, [*y])]) for y in zip(*Y)] for x in X]
A = [[1,2,3,4],[2,3,4,5],[3,4,5,6]]
B = [[1,3,5,7,9],[2,4,6,8,10],[0,1,2,3,4],[5,4,3,2,1]]
print(matmul(A, B))
ZGVmIG1hdG11bChYLCBZKToKCWksIGsxID0gbGVuKFgpLCBsZW4oWFswXSkKCWsyLCBqID0gbGVuKFkpLCBsZW4oWVswXSkKCWlmIGsxICE9IGsyIDoKCQlwcmludCgic2l6ZSBlcnJvciEiKQoJCXJldHVybiBOb25lCglyZXR1cm4gW1tzdW0oW3hfaWsqeV9raiBmb3IgeF9paywgeV9raiBpbiB6aXAoeCwgWyp5XSldKSBmb3IgeSBpbiB6aXAoKlkpXSBmb3IgeCBpbiBYXQoKQSA9IFtbMSwyLDMsNF0sWzIsMyw0LDVdLFszLDQsNSw2XV0KQiA9IFtbMSwzLDUsNyw5XSxbMiw0LDYsOCwxMF0sWzAsMSwyLDMsNF0sWzUsNCwzLDIsMV1dCgpwcmludChtYXRtdWwoQSwgQikp