#include <bits/stdc++.h>
using namespace std;
static const double EPS = 1e-8;
const static int tx[] = {0, 1, 0, -1};
const static int ty[] = {-1, 0, 1, 0};
int main() {
  int N;
  while (~scanf("%d", &N)) {
    if (N == 0) break;
    vector<pair<string, int> > dict;
    char mapping[256];
    bool used[256];
    memset(mapping, -1, sizeof(mapping));
    memset(used, false, sizeof(used));
    for (int i = 0; i < N; i++) {
      string str;
      cin >> str;
      for (int j = 0; j < str.size(); j++) {
        if (mapping[str[j]] == -1) {
          for (char alter = 'a'; alter <= 'z'; alter++) {
            if (!used[alter]) {
              mapping[str[j]] = alter;
              used[alter] = true;
              break;
            }
          }
        }
      }
      string next = "";
      for (int j = 0; j < str.size(); j++) {
        next.push_back(mapping[str[j]]);
      }
      dict.push_back(pair<string, int>(next, i));
    }
    sort(dict.begin(), dict.end());
    bool isok = true;
    for (int i = 0; i < dict.size(); i++) {
      if (dict[i].second != i) {
        isok = false;
        break;
      }
    }
    printf("%s\n", isok ? "yes" : "no");
  }
}
