import random
from collections import deque


class KnightsQueue:
    def __init__(self, blue_team, red_team):
        self.queues = deque(blue_team), deque(red_team)
        self.team_idx_turn = random.randint(0, 1)

    def dequeue_knight(self):
        if self.both_teams_alive():
            knight = self.queues[self.team_idx_turn].popleft()
            if knight.max_hp <= 0:
                return self.dequeue_knight()
            else:
                self.queues[self.team_idx_turn].append(knight)
                self.next_turn()
                return knight
        raise Exception('Game has just ended')

    def both_teams_alive(self):
        return len(self.queues[0]) > 0 and len(self.queues[1]) > 0

    def next_turn(self):
        self.team_idx_turn = (self.team_idx_turn + 1) % 2