#include <cstdio>
#include <cstdint>
#include <vector>
#include <utility>
#include <algorithm>
#include <queue>
#include <string>
#include <tuple>

bool includes(std::string const& s, std::string const& t) {
  // s == "ab", t == "a"  => true
  // s == "a",  t == "a"  => false
  // s == "a",  t == "ab" => false
  if (s.length() <= t.length()) return false;
  return (s.compare(0, t.length(), t) == 0);
}

std::pair<char, char> critical(std::string const& s, std::string const& t) {
  size_t n = std::min(s.length(), t.length());
  for (size_t i = 0; i <= n; ++i) {
    if (s[i] == t[i]) continue;
    if (s[i] == 0 || t[i] == 0) return {0, 0};  // no constraints
    return {s[i]-'a', t[i]-'a'};
  }
  return {0, 0};  // no constraints
}

int testcase_ends() {
  size_t n;
  scanf("%zu", &n);
  if (n == 0) return 1;

  std::vector<std::string> s(n);
  for (size_t i = 0; i < n; ++i) {
    char buf[16];
    scanf("%s", buf);
    s[i] = buf;
  }

  size_t sigma = 26;
  std::vector<std::vector<int>> g0(sigma, std::vector<int>(sigma));

  for (size_t i = 0; i < n; ++i)
    for (size_t j = i+1; j < n; ++j) {
      size_t lc, gc;
      if (includes(s[i], s[j])) return puts("no"), 0;
      std::tie(lc, gc) = critical(s[i], s[j]);
      g0[lc][gc] = 1;
    }

  std::vector<std::vector<size_t>> g(sigma);
  std::vector<size_t> indeg(sigma);
  for (size_t i = 0; i < sigma; ++i)
    for (size_t j = 0; j < sigma; ++j)
      if (i != j && g0[i][j]) {
        g[i].push_back(j);
        // fprintf(stderr, "%c -> %c\n", char(i+'a'), char(j+'a'));
        ++indeg[j];
      }

  std::queue<size_t> q;
  for (size_t i = 0; i < sigma; ++i)
    if (indeg[i] == 0) q.push(i);

  while (!q.empty()) {
    size_t v = q.front();
    // fprintf(stderr, "pop: %c\n", char(v+'a'));
    q.pop();
    for (auto u: g[v]) {
      // fprintf(stderr, "reached: %c\n", char(u+'a'));
      if (--indeg[u] == 0) q.push(u);
    }
  }

  if (*std::max_element(indeg.begin(), indeg.end()) != 0) {
    puts("no");
  } else {
    puts("yes");
  }
  return 0;
}

int main() {
  while (!testcase_ends()) {}
}

