Цікаві перепочинки
Limits: 2 sec., 256 MiB
Нарешті Зеник і Марічка добралися в Карпати! Але це лише початок пригод. Далі розпочинається піша частина мандрівки.
Звісно, час від часу потрібно робити перепочинки, щоб відновити сили, випити смачного закарпатського вина та трішки розважитися. Як ви вже зрозуміли, Зеник та Марічка дуже люблять ігри. Цього разу вони знову вирішили зіграти в неймовірно цікаву (і дивну) гру. Зеник придумує список з \(n\) рядків, а Марічка має сказати чи можна змінити порядок символів у алфавіті так, щоб придуманий Зеником список був лексикографічно впорядкованим.
Input
У першому рядку задано одне ціле число \(n\) — кількість рядків.
Наступні \(n\) рядків містять рядки зі списку Зеника.
Output
У єдиному рядку виведіть Yes
, якщо існує потрібний
порядок символів в алфавіті. Інакше – виведіть No
.
Constraints
\(1 \le n\le 10^{5}\),
\(1 \le \sum_{i=1} ^n |s_i| \le 10^5\),
усі рядки складаються з малих літер латинської абетки.
Samples
Input (stdin) | Output (stdout) |
---|---|
3 ba ac ab | Yes |
Input (stdin) | Output (stdout) |
---|---|
3 ab ba ad | No |
Notes
Список з \(n\) рядків називається лексикографічно впорядкованим, якщо \(s_i\) не є лексикографічно більшим за \(s_{i+1}\) для усіх \(i\) від 1 до \(n - 1\).
Рядок \(a\) називається лексикографічно більшим за рядок \(b\), якщо \(b\) є префіксом \(a\) або символ \(a_k\) знаходиться в алфавіті після символу \(b_k\), де \(k\) – найменший індекс такий що \(a_k \ne b_k\).
У першому прикладі підійде алфавіт з таким порядком символів:
cba
.
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|