#include <bits/stdc++.h>
using namespace std;
int vowel(char c) {
  return (c == 'a') || (c == 'e') || (c == 'i') || (c == 'u') || (c == 'o');
}
char s[1000000];
string get_suf(int k) {
  int l = strlen(s), i, o = k;
  for (i = l - 1; i >= 0; i--) {
    if (vowel(s[i])) {
      if (--o == 0) {
        return (s + i);
      }
    } else {
    }
  }
  return "";
}
int rime(int k) {
  int i, l;
  vector<string> v(4);
  for (i = 0; i < 4; i++) {
    scanf("%s", s);
    v[i] = get_suf(k);
    if (v[i] == "") {
      return -1;
    }
  }
  for (i = 1; i < 4; i++) {
    if (v[i] != v[0]) {
      break;
    }
  }
  if (i == 4) {
    return 0;
  }
  if (v[0] == v[1] && v[2] == v[3]) {
    return 1;
  }
  if (v[0] == v[2] && v[1] == v[3]) {
    return 2;
  }
  if (v[0] == v[3] && v[1] == v[2]) {
    return 3;
  }
  return -1;
}
int main(void) {
  int i, j, n, k;
  scanf("%d%d", &n, &k);
  vector<int> a(n);
  int x = 0;
  for (i = 0; i < n; i++) {
    a[i] = rime(k);
    if (a[i] < 0) {
      printf("NO\n");
      return 0;
    }
    if (a[i] == 0) {
      continue;
    }
    if (x == 0) {
      x = a[i];
      continue;
    }
    if (a[i] != x) {
      printf("NO\n");
      return 0;
    }
  }
  if (x == 0) {
    printf("aaaa\n");
    return 0;
  }
  if (x == 1) {
    printf("aabb\n");
    return 0;
  }
  if (x == 2) {
    printf("abab\n");
    return 0;
  }
  if (x == 3) {
    printf("abba\n");
    return 0;
  }
  return 0;
}
