Halls (2.5 points) ================== A hall for cultural events (theatre hall, conference room, etc) represents its seating area with a nested list in which each sublist represents a row with the corresponding seats. A seat is represented by a string (:py:class:`str`) with values that can be ``'FREE'``, ``'OCCU'`` and ``'NAVA'``, which stand for, respectively, *free seat*, *occupied seat* and *seat not available* (due to the applied covid limited capacity). Rows may have different lenghts. For different cultural events or new capacity limitations, the seat values may change and also some rows can be extended with one seat. This changes are represented by a dictionary (:py:class:`dict`) in which the key is a seat position and the value is one of the three strings described in the previous paragraph. A seat position is represented by a :py:class:`tuple` with 2 values (:py:class:`int`), :math:`(r, s)`, corresponding to the row and the seat, respectively, and such that :math:`0 \leq r