Khảo cổ tầng 80

Đề bài

Mô tả

Một ổ khóa cổ gồm n từ, mỗi từ là một dãy các ký tự tượng hình. Bảng chữ cái tượng hình gồm c ký tự, đánh số từ 1 đến c (ký tự 1 là nhỏ nhất, ký tự c là lớn nhất).

Bên cạnh ổ khóa có một núm xoay. Mỗi lần xoay núm theo chiều kim đồng hồ sẽ thay mọi ký tự tượng hình bằng ký tự kế tiếp trong bảng chữ cái: ký tự x (với 1xc1) trở thành ký tự x+1, còn ký tự c trở thành ký tự 1. Như vậy, sau x lần xoay, một ký tự có giá trị v sẽ trở thành ký tự ((v1+x)modc)+1.

Cửa chỉ mở khi dãy n từ được sắp xếp theo thứ tự từ điển, tức là mỗi từ (trừ từ cuối) không lớn hơn từ đứng ngay sau nó theo thứ tự từ điển.

Từ a1,a2,,am được coi là không lớn hơn từ b1,b2,,bk theo thứ tự từ điển nếu một trong hai điều sau xảy ra:

  • Tại vị trí đầu tiên iaibi, ta có ai đứng trước bi trong bảng chữ cái (tức ai<bi);
  • Không tồn tại vị trí i như vậy và mk (tức từ thứ nhất là tiền tố của từ thứ hai, hoặc hai từ bằng nhau).

Hãy xác định số lần xoay núm theo chiều kim đồng hồ để mở được cửa, hoặc kết luận rằng điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nc: số từ trên ổ khóa và số ký tự tượng hình khác nhau.
  • Trong n dòng tiếp theo, dòng thứ i bắt đầu bằng số nguyên li là độ dài của từ thứ i, tiếp theo là li số nguyên wi,1,wi,2,,wi,li là các ký tự tạo thành từ đó.

Dữ liệu ra

In ra một số nguyên x (0xc1) là số lần xoay cần thiết để mở cửa. Nếu có nhiều giá trị x hợp lệ, in ra một giá trị bất kỳ.

Nếu không thể mở cửa bằng cách này, in ra 1.

Ràng buộc

  • 2n500000
  • 1c106
  • 1li, và tổng độ dài của tất cả các từ không vượt quá 106
  • 1wi,jc

Ví dụ

Input Output Giải thích
4 3
2 3 2
1 1
3 2 3 1
4 2 3 1 2
1 Sau 1 lần xoay, các từ trở thành: [1 3], [2], [3 1 2], [3 1 2 3]. Dãy này đã được sắp xếp theo thứ tự từ điển.
2 5
2 4 2
2 4 2
0 Hai từ giống hệt nhau nên dãy đã được sắp xếp sẵn, không cần xoay.
4 4
1 2
1 3
1 4
1 2
-1 Bốn từ một ký tự [2], [3], [4], [2]. Không có số lần xoay nào khiến cả dãy được sắp xếp, vì từ cuối luôn nhỏ hơn từ ngay trước nó.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0