from typing import Iterable
from typing import Hashable
from typing import Counter


def major_vote(all_votes: Iterable[Iterable[Hashable]]) -> Iterable[Hashable]:
    """
    For the given iterable of object iterations, return an iterable of the most common object at each position of the
    inner iterations.

    E.g.: for [[1, 2], [1, 3], [2, 3]] the return value would be [1, 3] as 1 and 3 are the most common objects
    at the first and second positions respectively.

    :param all_votes: an iterable of object iterations
    :return: the most common objects in the iterations (the major vote)
    """
    return [Counter(votes).most_common()[0][0] for votes in zip(*all_votes)]