#include <bits/stdc++.h>
using namespace std;
bool is[10020][5];
int n, k;
bool Is(char x) {
  if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u')
    return 1;
  else
    return 0;
}
char *solve(char *x) {
  int t = strlen(x), c = 0;
  for (int i = t; i >= 0; --i) {
    if (Is(x[i])) {
      c++;
      if (c == k) return x + i;
    }
  }
  return NULL;
}
int main() {
  int i, j;
  while (cin >> n >> k) {
    memset(is, 0, sizeof(is));
    ;
    for (i = 1; i <= n; ++i) {
      char c1[10020], c2[10020], c3[10020], c4[10020];
      scanf("%s%s%s%s", c1, c2, c3, c4);
      char *z1, *z2, *z3, *z4;
      z1 = solve(c1);
      z2 = solve(c2);
      z3 = solve(c3);
      z4 = solve(c4);
      if (z1 == NULL || z2 == NULL || z3 == NULL || z4 == NULL) continue;
      if (strcmp(z1, z2) == 0 && strcmp(z3, z4) == 0) is[i][1] = 1;
      if (strcmp(z1, z3) == 0 && strcmp(z2, z4) == 0) is[i][2] = 1;
      if (strcmp(z1, z4) == 0 && strcmp(z2, z3) == 0) is[i][3] = 1;
      if (strcmp(z1, z2) == 0 && strcmp(z2, z3) == 0 && strcmp(z3, z4) == 0)
        is[i][4] = 1;
    }
    bool flag = 0;
    for (i = 4; i >= 1; i--) {
      for (j = 1; j <= n; ++j)
        if (!is[j][i]) break;
      if (j > n) {
        if (i == 1) puts("aabb");
        if (i == 2) puts("abab");
        if (i == 3) puts("abba");
        if (i == 4) puts("aaaa");
        flag = 1;
        break;
      }
    }
    if (!flag) puts("NO");
  }
}
