def main(verbose=False):
    GAME_PLAY = 10 ** 6
    dice_size = 4
    visited = {"GO": 1}
    current = "GO"
    chance_card = 0
    chest_card = 0
    doubles = 0
    for place in xrange(GAME_PLAY):
        total, double = roll_die(dice_size)
        if double:
            doubles += 1
        else:
            doubles = 0

        if doubles == 3:
            doubles = 0
            current = "JAIL"
        else:
            index = SQUARES.index(current)
            landing_square = SQUARES[(index + total) % len(SQUARES)]
            (current, chance_card,
             chest_card) = next_square(landing_square, chance_card, chest_card)

        # if current is not in visited, sets to 1
        # (default 0 returned by get)
        visited[current] = visited.get(current, 0) + 1

    top_visited = sorted(visited.items(),
                         key=lambda pair: pair[1],
                         reverse=True)
    top_visited = [SQUARES.index(square[0]) for square in top_visited[:3]]

    return ''.join(str(index).zfill(2) for index in top_visited)