Mirko có một mảng chứa ~N từ khác nhau mà cậu ấy muốn mã hóa bằng mật mã thay thế. Chúng ta mã hóa văn bản bằng cách sử dụng mật mã thay thế bằng cách chọn trước một khóa - một sự hoán vị của bảng chữ cái tiếng Anh. Sau đó, chúng ta thay thế tất cả các ký tự 'a' bằng ký tự đầu tiên của khóa, tất cả các ký tự 'b' bằng ký tự thứ hai của khóa, v.v. cho đến chữ cái 'z'.
Ngoài các từ, Mirko còn có một mảng A gồm các số từ 1 đến N được sắp xếp theo thứ tự nhất định (nói cách khác, mảng ~A~ là một sự hoán vị của các số từ 1 đến ~N~). Mirko muốn chọn một khóa sao cho mảng các từ sau khi mã hóa và sắp xếp theo từ điển tương ứng với mảng ~A~. Cụ thể hơn, anh ấy muốn từ được đặt ở vị trí ~A_i~ ban đầu đứng ở vị trí ~i~ sau khi mã hóa và sắp xếp.
Hãy nhớ rằng thứ tự từ điển là thứ tự các từ xuất hiện trong từ điển. Nếu chúng ta so sánh hai từ, đi từ trái sang phải, chúng ta tìm vị trí đầu tiên trong cả hai từ mà các chữ cái khác nhau và dựa vào đó, chúng ta xác định từ nào nhỏ hơn theo từ điển. Nếu từ ~X~ là phần đầu của từ ~Y~, thì từ ~X~ nhỏ hơn theo từ điển so với từ ~Y~.
Mirko hiện không có tâm trạng để mã hóa, vì vậy cậu ấy kindly yêu cầu bạn làm điều đó thay cho cậu ấy.
Input
- Dòng đầu tiên của đầu vào chứa số nguyên N (2 ≤ N ≤ 100).
- Mỗi trong số N dòng tiếp theo chứa một từ duy nhất bao gồm tối đa 100 chữ cái viết thường của bảng chữ cái tiếng Anh. Các từ sẽ khác biệt lẫn nhau. Dòng cuối cùng chứa N số nguyên - các phần tử của mảng A. ##Output
- Trong trường hợp không tìm thấy giải pháp, hãy xuất ra “NE”. Ngược lại, hãy xuất ra “DA” trên dòng đầu tiên và trên dòng thứ hai xuất ra một từ bao gồm 26 chữ cái khác nhau của bảng chữ cái tiếng Anh - khóa cho mật mã thay thế. Nếu có nhiều giải pháp, hãy xuất ra bất kỳ giải pháp nào.
Score
- 30% test chỉ chứa 6 chữ cái đầu trong bảng chữ cái
Sample Input
11
.....XX...X
....XX...XX
...XX...XX.
...........
....XXX....
...........
.....X.....
....XX...X.
...XX...XX.
...X...XX..
Sample Output
2
1 4
7 2
Sample Input
3
abc
bcd
add
1 2 3
Sample Output
NE
Bình luận