from collections import deque


def solution(priorities, location):
    queue = deque()
    priority_count = [0 for _ in range(10)]

    for i in range(len(priorities)):
        p = priorities[i]
        queue.append((p, i == location))  # priority,  출력하고자 하는 값인지
        priority_count[p] += 1

    answer = 1

    while queue:
        item = queue.popleft()
        p, is_location = item

        # 뒤에 우선순위가 더 높은 문서가 있는 경우 맨 뒤로 보내기
        if sum(priority_count[p + 1:]) != 0:
            queue.append(item)
            continue

        # 내가 인쇄를 요청한 문서인 경우 몇 번째로 인쇄되는지 반환
        if is_location:
            return answer

        # 출력이 완료된 경우 카운트에서 뺌
        priority_count[p] -= 1
        answer += 1

    return answer


# 정확성  테스트
# 테스트 1 〉	통과 (0.04ms, 10.1MB)
# 테스트 2 〉	통과 (0.18ms, 10.2MB)
# 테스트 3 〉	통과 (0.03ms, 10.1MB)
# 테스트 4 〉	통과 (0.02ms, 10.2MB)
# 테스트 5 〉	통과 (0.01ms, 10.1MB)
# 테스트 6 〉	통과 (0.05ms, 10.2MB)
# 테스트 7 〉	통과 (0.04ms, 10MB)
# 테스트 8 〉	통과 (0.13ms, 10.2MB)
# 테스트 9 〉	통과 (0.02ms, 10.2MB)
# 테스트 10 〉	통과 (0.05ms, 10.2MB)
# 테스트 11 〉	통과 (0.12ms, 10.2MB)
# 테스트 12 〉	통과 (0.02ms, 10MB)
# 테스트 13 〉	통과 (0.16ms, 10.2MB)
# 테스트 14 〉	통과 (0.01ms, 10.1MB)
# 테스트 15 〉	통과 (0.01ms, 10.2MB)
# 테스트 16 〉	통과 (0.03ms, 10.1MB)
# 테스트 17 〉	통과 (0.13ms, 10.1MB)
# 테스트 18 〉	통과 (0.02ms, 10.1MB)
# 테스트 19 〉	통과 (0.17ms, 10.1MB)
# 테스트 20 〉	통과 (0.03ms, 10.2MB)
# 채점 결과
# 정확성: 100.0
# 합계: 100.0 / 100.0

assert (solution([2, 1, 3, 2], 2) == 1)
assert (solution([1, 1, 9, 1, 1, 1], 0) == 5)
