충전하기
시간 제한2초메모리 제한1024 MB
^1번 행동마다 최소 전력을 만족하는 가장 작은 빈 포트를 배정하고, 2번 행동에서는 그 포트에 꽂힌 시점을 출력한다.
문제
동우는 다양한 전자기기를 사용한다. 수많은 전자기기의 충전기를 모두 들고 다니는 것이 번거로웠던 동우는 개의 포트가 있는 멀티 포트 충전기를 장만했다. 동우의 멀티 포트 충전기는 특이하여 각 포트별로 출력해주는 전력이 다르다. 구체적으로 동우가 구매한 멀티 포트 충전기의 번 포트는 만큼의 전력을 출력해준다.
동우는 다양한 전자기기로 작업을 하면서 총 번 충전기에 꽂거나 뽑을 것이다. 구체적으로 동우가 하는 행동은 가지로 아래와 같은 입력으로 주어진다.
1: 최소 전력이 인 전자기기를 번 포트에 꽂는다. 만약 번 포트에 전자기기가 꽂혀 있다면, 현재 남아 있는 최소 전력 이상의 포트 중 가장 전력이 작은 포트에 기기를 꽂는다. 만약 남아 있는 모든 포트가 최소 전력 미만이라면, 기기를 꽂지 않는다.2: 번 포트에 기기가 꽂혀 있다면 기기를 뽑는다.
이때, 각 행동에 대해 다음을 출력하라.
1번 행동: 성공적으로 전자기기를 꽂았다면 포트의 번호를 출력하며, 꽂지 않았다면-1을 출력한다.2번 행동: 기기가 꽂혀 있었다면 몇 번째 행동에서 꽂힌 기기인지 출력하며, 꽂혀 있지 않았다면-1을 출력한다. 여기서 몇 번째 행동인지는1번과2번을 행동을 합쳐서 센다.
입력
첫 번째 줄에 포트의 수 과 행동의 수 가 주어진다.
두 번째 줄부터 줄에 걸쳐 동우가 하는 행동의 타입 와 포트 번호 또는 최소 전력을 의미하는 정수 가 공백으로 구분되어 주어진다.
출력
각각의 행동이 주어질 때마다 행동의 결과를 한 줄에 하나씩 출력한다.