관악산 등산

꼭짓점마다 높이가 다른 그래프에서 등산객은 현재 꼭짓점에서 더 높은 이웃으로만 이동하며 막힐 때까지 걷는다. 각 시작 꼭짓점에서 만들 수 있는 가장 긴 순증가 경로의 길이를 구한다.

보통7그래프동적 계획법DFS정렬아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

서울대학교에는 "누가 조국의 미래를 묻거든 고개를 들어 관악을 보게 하라"라는 유명한 문구가 있다. 어느 날 Unused가 Corea에게 조국의 미래를 묻자, Corea는 직접 관악산에 올라가 조국의 미래를 보고 답해 주기로 했다.

관악산의 등산로는 1번부터 N번까지 서로 다른 번호가 붙은 NN개의 쉼터와 두 쉼터 사이를 오갈 수 있는 MM개의 길로 이루어져 있다. Corea는 지면에서부터 산을 오르기가 너무 귀찮았으므로, 케이블카를 타고 아무 쉼터에나 내린 다음 등산을 시작한다. Corea는 항상 더 높은 곳을 지향하기 때문에, 쉼터에 도착하면 그 쉼터와 길로 직접 연결된 쉼터 중 더 높은 쉼터로 가는 길 하나를 골라 그 길을 따라 이동한다. 그런 길이 없으면 등산을 마친다.

관악산의 쉼터에는 조국의 미래를 볼 수 있는 전망대가 하나씩 설치되어 있다. Corea는 쉼터를 최대한 많이 방문해서 조국의 미래를 많이 보고 Unused에게 전해 주기로 했다. 관악산의 지도가 주어질 때, Corea가 각각의 쉼터에서 출발해 산을 오를 때 최대 몇 개의 쉼터를 방문할 수 있는지 구하여라. 케이블카에서 내린 쉼터도 방문한 쉼터로 센다.

입력

첫째 줄에 등산로에 있는 쉼터의 수 NN (2N50002 \le N \le 5000)과 두 쉼터를 연결하는 길의 수 MM (1M1000001 \le M \le 100000)이 주어진다.

둘째 줄에 각 쉼터의 높이를 나타내는 NN개의 정수가 쉼터 번호 순서대로 주어진다. 각 쉼터의 높이는 11 이상 10000001000000 이하의 정수이고, 모두 서로 다르다.

셋째 줄부터 MM개의 줄에 걸쳐 각각의 길이 연결하는 두 쉼터의 번호가 공백으로 구분되어 주어진다. 쉼터의 번호는 11 이상 NN 이하의 정수이다. 양 끝점이 같은 쉼터인 길은 없으며, 같은 두 쉼터를 연결하는 길이 여러 개 있을 수 있다.

출력

NN개의 줄에 걸쳐 출력한다. nn번째 줄에는 Corea가 nn번 쉼터에서 출발해 산을 오를 때 최대로 방문할 수 있는 쉼터의 개수를 출력한다.

힌트

관악산 지도 예시

위 그림은 첫 번째 예제의 지도다. 2번 쉼터에서 출발하면 1번, 4번, 3번 쉼터를 차례대로 방문할 때 가장 많은 쉼터를 방문한다.

5번 쉼터는 3번 쉼터보다 높은 곳에 있지만 두 쉼터를 잇는 길이 하나도 없으므로, 3번 쉼터에서 5번 쉼터로 이동할 수 없다.