교실 불 끄기

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

문제

송도고등학교의 경비원인 진서는 교실의 불을 모두 끄고 얼른 퇴근하고 싶다. 하지만 진서는 S리그 경기 중에 발생한 무릎 부상으로 인해 계단을 오르내리는 것이 매우 힘들다.

따라서 진서는 최소한의 계단을 사용하여 불을 끄는 방법 중 시간을 최소화하는 방법으로 불을 끌 것이다.

불을 끄러 다니는 경비원 진서의 피곤한 모습이다.

학교는 nn개의 층으로 이루어져 있으며 모든 층에는 계단, mm개의 교실, 계단이 순서대로 배치되어 있다. 각 교실과 계단은 하나의 칸으로서 표현된다. 한 칸을 이동하는 데에는 11분이 걸리고, 층간 이동은 계단을 통해서만 할 수 있다. 특히 학교 건물의 가장 높은 층인 nn층에는 면학실이 있기에 모든 교실에 불이 켜져 있다.

예제로 주어지는 학교의 모습이다. 편의상 양 끝 계단 열에 0044를 부여했다.

진서가 학교의 11층 왼쪽 계단 칸에서 출발하여 모든 불을 끄고 마지막으로 11층 왼쪽 계단 칸 혹은 11층 오른쪽 계단 칸에 도달하는 시간(분)을 계산하는 프로그램을 작성하여라. 단, 진서가 각 교실의 불을 끄는 시간은 매우 짧으므로 고려하지 않는다.

입력

첫 번째 줄에는 학교의 층수 nn과 한 층에 있는 교실의 수 mm가 공백으로 구분되어 주어진다.

이어서 nn개의 각 i+1i+1번째 줄에는 ii층에 있는 불이 켜진 교실의 수 k_ik\_ik_ik\_i개의 불이 켜진 각 교실이 왼쪽 계단 칸으로부터 떨어진 칸의 수 a_i,1,a_i,2,,a_i,k_ia\_{i,1}, a\_{i,2}, \ldots, a\_{i,k\_i}가 공백으로 구분되어 순서대로 주어진다.

출력

조건에 맞게 불을 다 끄고 나가는 문까지 도달하는 시간(분)의 최솟값을 출력한다.

제한

  • 2n,m100,0002 ≤ n , m ≤ 100\\,000.
  • 0k_im0 ≤ k\_i ≤ m.
  • k_n=mk\_n = m.
  • 불이 켜진 모든 교실의 수는 100,000100\\,000 이하.
  • 1a_i,1<a_i,2<<a_i,k_im1 \le a\_{i,1} < a\_{i,2} < \cdots < a\_{i,k\_i} \le m.

힌트

  • C/C++의 경우, 32bit 정수형 int의 범위를 넘어가는 정수를 다루게 되므로 64bit 정수형 long long 사용을 권장한다.