#include <bits/stdc++.h>
using namespace std;
int n, ans;
string str[501];
long long mp[('z' - 'a') + 1];
void mk_mp(int pos, int i, int j) {
  while (i <= j && pos >= str[i].size()) i++;
  if (i >= j) return;
  int ni = -1, ch = str[i][pos] - 'a', c = 1;
  while (i < j && ans) {
    int a = str[++i][pos] - 'a', f = (ch == a);
    if (f && ni == -1) ni = i - 1;
    if (!f && ni >= 0) mk_mp(pos + 1, ni, i - 1), ni = -2;
    if (!f && c) mk_mp(pos, i, j), mp[ch] |= ((1LL << a) | mp[a]), c = 0;
    if (f && !c) ans = 0;
    if (f && str[i - 1].size() > str[i].size() && str[i][pos + 1] == 0) ans = 0;
  }
  if (ni >= 0) mk_mp(pos + 1, ni, j);
}
int main() {
  while (1) {
    cin >> n;
    if (!n) break;
    for (int i = 0; i < ('z' - 'a'); i++) mp[i] = 0;
    for (int i = 0; i < n; i++) cin >> str[i];
    ans = 1;
    mk_mp(0, 0, n - 1);
    for (int i = 0; i < ('z' - 'a'); i++)
      if ((mp[i] & (1 << i))) ans = 0;
    cout << (ans ? "yes" : "no") << endl;
  }
  return 0;
}
