시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
수영장이 터진 뒤, 미르코와 슬라브코는 카드 모으기를 시작했습니다. 이 동네에서는 카드 모으기를 진지하게 여기며, 카드를 사고 교환하는 데 엄격한 규칙이 있습니다.
카드 구매는 항상 두 아이가 함께 합니다. 두 아이가 비용을 절반씩 내고 카드 두 장을 산 뒤, 시내 분수까지 달리기 시합을 합니다. 먼저 도착한 아이가 카드 두 장을 모두 가져가고, 정확히 동시에 도착하면 한 장씩 나눠 갖습니다.
처음에는 이 규칙에 문제가 없어 보였지만, 시간이 지나자 몇몇 아이들이 이런 구매만으로는 만들 수 없는 카드 수를 가지고 있다는 의심이 생겼습니다.
어느 날 아이들은 이상한 일이 있었는지 확인하기 위해 모였습니다. 각 아이가 현재 가지고 있는 카드 수는 정확히 합의했습니다. 또한 누가 누구와 함께 가게에 갔는지 일부 기록도 복원했습니다. 다만 그 구매 뒤의 달리기에서 누가 이겼는지는 알지 못합니다.
모든 아이가 처음에는 카드를 한 장도 가지고 있지 않았다고 가정합니다. 모든 구매와 각 구매의 결과를 하나 구성하여, 모든 구매가 끝난 뒤 각 아이의 카드 수가 주어진 값과 같아지게 하세요. 입력으로 주어진 구매는 반드시 포함되어야 합니다. 가능한 답이 여러 개라면 아무거나 출력해도 됩니다.
첫째 줄에 아이의 수 N과 기억하고 있는 구매 수 M이 주어집니다 (1 <= N <= 100, 0 <= M <= 1000). 아이들은 1번부터 N번까지 번호가 붙어 있습니다.
둘째 줄에는 N개의 정수가 주어집니다. i번째 정수는 i번 아이가 현재 가지고 있는 카드 수입니다.
다음 M개의 줄에는 각 구매를 함께 한 두 아이의 번호가 정수 두 개로 주어집니다.
첫째 줄에 전체 구매 수를 출력합니다.
이후 각 줄에는 구매 하나를 정수 세 개로 출력합니다. 처음 두 정수는 그 구매를 함께 한 두 아이의 번호이고, 세 번째 정수는 그 줄에서 첫 번째로 쓴 아이가 받은 카드 수입니다. 이 값은 0, 1, 2 중 하나이며, 두 번째 아이는 남은 카드를 받습니다.
올바른 해는 항상 존재하지만 유일하지 않을 수 있습니다. 올바른 출력의 전체 구매 수는 1000 이하입니다.
첫 번째 예시에서는 아이가 1번과 2번뿐입니다. 1번 아이는 최종적으로 카드 5장, 2번 아이는 카드 1장을 가져야 합니다. 첫 구매에서 한 장씩 나누고, 이후 두 번의 구매에서 1번 아이가 두 장을 모두 가져가면 조건을 만족합니다.