소를 위한 항공 노선

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

목장의 겨울 추위에 지친 소 베시는 따뜻한 곳으로 휴가를 떠나려고 한다. 그런데 소에게 항공권을 파는 항공사는 Air Bovinia 한 곳뿐이고, 이 회사의 항공권은 구조가 조금 특이하다.

Air Bovinia는 비행기 NN대를 보유하고, 비행기마다 도시 두 곳 이상을 정해진 순서로 잇는 노선 하나를 운항한다. 예를 들어 어떤 비행기는 도시 1에서 출발해 도시 5와 도시 2를 차례로 거친 뒤 도시 8에서 운항을 마친다. 한 노선에 같은 도시가 두 번 나오지는 않는다.

베시는 노선을 이용할 때 그 노선에 있는 도시 아무 곳에서나 탑승해서, 그보다 뒤에 오는 도시 아무 곳에서나 내릴 수 있다. 첫 도시에서 타야 하거나 마지막 도시에서 내려야 하는 것은 아니다. 노선마다 요금이 정해져 있고, 노선의 일부라도 이용하면 도시를 몇 개 지나든 요금 전액을 낸다. 여행 도중 한 노선을 여러 번 이용하면, 즉 노선에서 내렸다가 나중에 다른 도시에서 그 노선을 다시 타면 탈 때마다 요금을 낸다.

개별 비행 한 번은 노선에서 이웃한 두 도시 사이를 옮겨 가는 것을 뜻한다. 노선의 ii번째 도시에서 타서 jj번째 도시에서 내리면 개별 비행을 jij - i번 한 것이다.

베시가 목장이 있는 도시 AA에서 휴가지인 도시 BB까지 가는 데 드는 최소 요금과, 그 최소 요금으로 갈 때 필요한 개별 비행 횟수의 최솟값을 구하라.

입력

첫째 줄에 AA, BB, NN이 공백으로 구분되어 주어진다. (1N10001 \le N \le 1000)

다음 2N2N개의 줄에 노선 정보가 노선마다 두 줄씩 주어진다. 각 노선의 첫 줄에는 그 노선의 요금과 노선에 속한 도시의 개수가 주어진다. 요금은 1 이상 1,000,000,000 이하의 정수이고, 도시의 개수는 1 이상 100 이하의 정수이다. 둘째 줄에는 노선에 속한 도시가 운항 순서대로 주어진다.

도시는 1 이상 1000 이하의 정수로 구분한다. AABB도 이 범위의 도시 번호이고, 두 값이 같을 수도 있다.

여정 전체의 요금은 32비트 정수 범위를 쉽게 넘으므로 64비트 정수를 쓰는 것이 좋다.

출력

도시 AA에서 도시 BB까지 가는 최소 요금과, 그 요금으로 갈 때 필요한 개별 비행 횟수의 최솟값을 한 줄에 공백으로 구분해 출력한다. AABB가 같으면 0 0을 출력한다. 도시 AA에서 도시 BB로 갈 수 없으면 -1 -1을 출력한다.