import itertools

class Matriu:

    def __init__(self, f, c):
        self.nfil = f
        self.ncol = c
        self.elems = [[0]*c for i in range(f)]

    def __getitem__(self, p):
        f, c = p
        return self.elems[f][c]

    def __setitem__(self, p, v):
        f, c = p
        self.elems[f][c] = v

    def __iter__(self):
        return itertools.chain.from_iterable(self.elems)

def enum_matriu(m):
  iind = itertools.product(range(m.nfil), range(m.ncol))
  return zip(iind, m)
