#include <bits/stdc++.h>
using namespace std;
int n, k;
string s[4];
int a[4][4];
int sum[4];
int d[4];
string v = "aeiou";
bool isvowel(char t) {
  for (int i = 0; i < v.size(); i++) {
    if (v[i] == t) return true;
  }
  return false;
}
bool fill(int i, int j) {
  return (s[i].substr(0, d[i] + 1) == s[j].substr(0, d[j] + 1));
}
set<string> st;
int w = 0;
void solve() {
  for (int i = 0; i < 4; i++)
    for (int j = 0; j < 4; j++) a[i][j] = 0;
  int temp = 0;
  for (int j = 0; j < 4; j++) {
    cin >> s[j];
    reverse(s[j].begin(), s[j].end());
  }
  for (int j = 0; j < 4; j++) {
    int l = 0;
    for (int i = 0; i < s[j].size(); i++) {
      if (isvowel(s[j][i])) {
        sum[j]++;
        l++;
        if (l == k) {
          d[j] = i;
        }
      }
    }
  }
  for (int j = 0; j < 4; j++) {
    if (sum[j] < k) {
      printf("NO\n");
      exit(0);
    }
    for (int i = 0; i < 4; i++) {
      if (fill(i, j)) {
        a[i][j] = 1;
        temp++;
      }
    }
  }
  if (temp == 16) {
    w = 1;
    return;
  }
  if (a[0][1] && a[2][3]) {
    st.insert("aabb");
    return;
  }
  if (a[0][2] && a[1][3]) {
    st.insert("abab");
    return;
  }
  if (a[0][3] && a[1][2]) {
    st.insert("abba");
    return;
  }
  printf("NO\n");
  exit(0);
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    solve();
  }
  if (st.size() == 0) {
    cout << "aaaa";
    return 0;
  }
  if (st.size() == 1) {
    cout << *(st.begin());
  } else {
    cout << "NO";
  }
  return 0;
}
