#include <bits/stdc++.h>
using namespace std;
int main() {
  int N;
  while (cin >> N, N) {
    vector<string> S(N);
    for (auto &s : S) cin >> s;
    int G[26][26];
    fill(G[0], G[N], 0);
    bool flag = true;
    for (int i = 0; i < N; i++) {
      for (int j = i + 1; j < N; j++) {
        string s1 = S[i], s2 = S[j];
        if (s1 == s2) continue;
        for (int ite = 0; ite < max(s1.size(), s2.size()); ite++) {
          if (ite >= s2.size()) {
            flag = false;
            break;
          } else {
            if (ite >= s1.size())
              break;
            else {
              if (s1[ite] == s2[ite])
                continue;
              else {
                G[s1[ite] - 'a'][s2[ite] - 'a'] = 1;
                break;
              }
            }
          }
        }
      }
    }
    for (int k = 0; k < 26; k++) {
      for (int i = 0; i < 26; i++) {
        for (int j = 0; j < 26; j++) {
          G[i][j] |= G[i][k] & G[k][j];
        }
      }
    }
    for (int i = 0; i < N; i++) {
      if (G[i][i]) flag = false;
    }
    cout << (flag ? "yes" : "no") << endl;
  }
  return 0;
}
