#include <bits/stdc++.h>
using namespace std;
const long long Maxn = 1e5 + 7;
const long long Max = 1e3 + 7;
const long long Mod = 1e9 + 7;
const long long Inf = 1e9 + 7;
string s[Maxn], V[Maxn];
long long ans[5];
long long check(char t) {
  if (t == 'u' || t == 'o' || t == 'a' || t == 'i' || t == 'e') return true;
  return false;
}
void f(long long a, long long b, long long c, long long d) {
  if (V[a] == V[b] && V[c] == V[d])
    ;
  else
    ans[1] = 0;
  if (V[a] == V[c] && V[b] == V[d])
    ;
  else
    ans[2] = 0;
  if (V[a] == V[d] && V[c] == V[b])
    ;
  else
    ans[3] = 0;
  if (V[a] == V[b] && V[c] == V[d] && V[c] == V[b])
    ;
  else
    ans[4] = 0;
}
void print(long long i) {
  if (i == 1) cout << "aabb" << endl;
  if (i == 2) cout << "abab" << endl;
  if (i == 3) cout << "abba" << endl;
  if (i == 4) cout << "aaaa" << endl;
}
int main() {
  long long n, k;
  cin >> n >> k;
  for (long long i = 1; i <= 4 * n; i++) {
    cin >> s[i];
    long long K = k;
    for (long long j = s[i].size() - 1; K && j >= 0; j--) {
      V[i] += s[i][j];
      if (check(s[i][j])) K--;
    }
    if (K) {
      cout << "NO" << endl;
      return 0;
    }
  }
  ans[1] = ans[2] = ans[3] = ans[4] = 1;
  for (long long i = 1; i <= n; i++) {
    long long st = (i - 1) * 4;
    f(st + 1, st + 2, st + 3, st + 4);
  }
  for (long long i = 4; i >= 1; i--) {
    if (ans[i]) {
      print(i);
      return 0;
    }
  }
  cout << "NO" << endl;
  return 0;
}
