Hãng game KFCTuba đang phát triển một tựa game mới. Để thử nghiệm các tính năng cũng như sửa lỗi trước khi đưa các dòng lệnh vào game, nhóm đã phát hành một phiên bản thử nghiệm nhỏ của trò chơi. Trong bản thử nghiệm nhỏ của game, người chơi phải giải được hết các mật mã trong dungeon. Do chỉ là bản thử nghiệm nên dungeon chỉ có ~ n ~ căn phòng được đặ nối tiếp nhau. Căn phòng thứ ~ i ~ chỉ có một con đường một chiều nối đến phòng thứ ~ i+1 ~ ~ ( 1 ≤ i ≤ n-1 ) ~. Mỗi căn phòng ~ i ~ đều có một câu đố là một danh sách gồm ~ k_i ~ căn phòng ~ a_{i, 1}, a_{i, 2}, …, a_{i, k_i} ~. Để giải được câu đố trong phòng thứ ~ i ~, trước đó người chơi phải giải được các câu đó của phòng trong danh sách nói trên. Nếu đến được phòng cuối (phòng thứ ~ n ~) và các mật mã được giải hết, trò chơi sẽ kết thúc. Nếu không, người chơi bị đưa về phòng 1 và tiếp tục đi qua dungeon. Các căn phòng đã được giải mã trước khi quay về vẫn được lưu lại để người chơi có thể tiếp tục giải mã các căn phòng khác. Bạn vừa tải xong trò chơi và muốn biết rằng mình sẽ chơi nhanh nhất trong bao lâu, bằng cách đến số lần ít nhất mà bạn đi qua dungeon (đi từ phòng 1 đến phòng ~ n ~ được xem là một lần đi qua dungeon), hoặc cho biết rằng trò chơi không thể được hoàn thành.
Dữ liệu vào
Kết quả
Nếu có thể hoàn thành trò chơi, in ra một số nguyên duy nhất là số lần đi qua dungeon ít nhất. Nếu không thể, in ra ~ -1 ~.
Ràng buộc
Ví dụ:
Input 1
```4 1 2 0 2 1 4 1 2
```
Output 1
2
Input 2
```5 1 5 1 1 1 2 1 3 1 4
```
Output 2
-1
Input 3
```5 0 0 2 1 2 1 2 2 2 1
```
Output 3
1
Code tích cực |
---|
Trong 24h |
|
Trong 7 ngày |
|
Trong 30 ngày |
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 37724 |