아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Канализация

면접 대비

시간 제한2초메모리 제한1024 MB

요약
트리와 질의 (l, r)가 주어질 때, l에서 r로 가는 유일한 경로에서 l 다음에 오는 정점을 구한다.
난이도

보통10점 중 6점

유형
트리, DFS, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

Как известно, черепашки-ниндзя вместе со своим учителем Сплинтером всю свою жизнь проводят в канализации. Ведь только там можно так быстро передвигаться по городу, скользя на панцире! Из канализации в город можно выбраться только с помощью nn канализационных люков, расположенных в разных частях города. Некоторые люки соединены друг с другом трубами, по которым черепашки могут передвигаться в обе стороны. Между каждой парой люков существует ровно один путь по трубам. Это, в частности, значит, что в канализации ровно n−1n - 1 труба. Люки пронумерованы начиная с 11.

Когда черепашки-ниндзя были маленькими, они постоянно забывали маршруты от одного люка до другого, и спрашивали учителя Сплинтера, куда же им скользить, чтобы попасть в какой-то люк. Сплинтер сообщал черепашкам номер первого люка на пути из люка номера ll к люку номер rr.

Вскоре учителю Сплинтеру надоело, что черепашки постоянно отвлекают его от медитации, и они вместе с Донателло написали программу, которая по двум номерам люков ll и rr сообщает номер первого люка на пути из ll в rr. А вы сможете написать такую программу?

입력

В первой строке входного файла заданы два целых числа nn и mm --- количество люков в канализации и количество запросов соответственно (1≤n,m≤1051 \le n, m \le 10^5).

В следующих n−1n - 1 строке заданы описания труб --- два числа aa и bb, которые задают номера люков, которые соединяет эта труба (1≤a,b≤n1 \le a, b \le n). По трубе можно скользить в обоих направлениях. Гарантируется, что в канализации можно добраться от каждого люка до каждого.

В следующих mm строках заданы запросы, по одному запросу в строке --- два числа ll и rr, которые задают стартовый и конечный люк на пути соответственно (1≤l,r≤n1 \le l, r \le n). Гарантируется, что ll и rr --- различны.

출력

В выходной файл выведите ответы на запросы по одному в строке, в том порядке, в котором они следуют во входном файле. Ответом на запрос является номер первого люка на пути с ll по rr.

예제1

  1. 예제 1

    입력
    6 4
    1 2
    3 2
    4 2
    2 5
    5 6
    1 5
    4 6
    5 6
    6 3
    
    예상 출력
    2
    2
    6
    5