#include <bits/stdc++.h>
using namespace std;
char a[1005];
int f[1005], flag[1005], prime[1005], g[1005];
int n, num, ok[1005], k, i, id, ans, cnt, j;
int main() {
  scanf("%s", a + 1);
  n = strlen(a + 1);
  num = 1;
  ok[1] = 1;
  for (i = 1; a[i]; i++) g[a[i] - 'a']++;
  for (i = 2; i <= n; i++) {
    if (!flag[i])
      if ((prime[++cnt] = i) > n / 2) ok[i] = 1, num++;
    for (j = 1; j <= cnt && prime[j] * i <= n; j++) flag[prime[j] * i] = 1;
  }
  for (i = 0; i < 26; i++)
    if (ans < g[i]) ans = g[i], id = i;
  num = n - num;
  if (ans < num) return puts("NO"), 0;
  puts("YES");
  for (i = 1; i <= n; i++)
    if (!ok[i])
      putchar('a' + id);
    else {
      for (k = 0; k < 26; k++)
        if (k != id && g[k]) {
          putchar('a' + k);
          g[k]--;
          break;
        }
      if (k == 26) putchar('a' + id);
    }
}
