#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target("sse4")
using namespace std;
const long long int MAX = -1000000000000000000;
const long long int MIN = 1000000000000000000;
const long long int inf = 1000000000;
const long long int KOK = 100000;
const long long int LOG = 30;
const long long int li = 500005;
const long long int mod = 1000000007;
long long int n, m, cev, b, a[li], k, flag, satir, sutun;
string s;
char vv[li], c[1005][1005], vvv[li];
vector<pair<int, int> > v;
void bolenbul(long long int x) {
  for (long long int i = 1; i * i <= x; i++) {
    if (x % i == 0) v.push_back(make_pair(i, x / i));
  }
}
int main(void) {
  scanf("%lld", &n);
  bolenbul(n);
  for (long long int i = 0; i < (long long int)v.size(); i++) {
    if (v[i].first >= 5 && v[i].second >= 5) {
      flag = 1;
      satir = v[i].first;
      sutun = v[i].second;
      break;
    }
  }
  c[1][1] = 'a';
  c[1][2] = 'e';
  c[1][3] = 'i';
  c[1][4] = 'o';
  c[1][5] = 'u';
  c[2][1] = 'e';
  c[2][2] = 'a';
  c[2][3] = 'o';
  c[2][4] = 'u';
  c[2][5] = 'i';
  c[3][1] = 'i';
  c[3][2] = 'o';
  c[3][3] = 'u';
  c[3][4] = 'e';
  c[3][5] = 'a';
  c[4][1] = 'u';
  c[4][2] = 'i';
  c[4][3] = 'e';
  c[4][4] = 'a';
  c[4][5] = 'o';
  c[5][1] = 'o';
  c[5][2] = 'u';
  c[5][3] = 'a';
  c[5][4] = 'i';
  c[5][5] = 'e';
  vv[1] = 'a';
  vv[2] = 'e';
  vv[3] = 'i';
  vv[4] = 'o';
  vv[5] = 'u';
  if (!flag) {
    printf("-1\n");
    return 0;
  }
  for (long long int i = 1; i <= satir; i++) {
    for (long long int j = 1; j <= sutun; j++) {
      if (j <= 5 && i <= 5) {
        printf("%c", c[i][j]);
      } else if (i <= 5)
        printf("%c", vv[i]);
      else if (j <= 5)
        printf("%c", vv[j]);
      else
        printf("%c", vv[5]);
    }
  }
  return 0;
}
