#include <bits/stdc++.h>
using namespace std;
bool p[1001];
void erat() {
  int i;
  for (int i = 1; i <= 1000; ++i) p[i] = true;
  p[1] = false;
  i = 2;
  while (true) {
    if (p[i]) {
      for (int j = i * i; j <= 1000; j += i) p[j] = false;
      ++i;
    }
    while (i <= 1000 && !p[i]) ++i;
    if (i > 1000) break;
  }
}
int main() {
  char c;
  int n = 0;
  int a[26];
  int t = 1;
  int mi = 0;
  int k;
  for (int i = 0; i < 26; ++i) a[i] = 0;
  while (cin >> c) {
    ++a[c - 'a'];
    ++n;
  }
  for (int i = 0; i < 26; ++i)
    if (a[i] > a[mi]) mi = i;
  erat();
  for (int i = n / 2 + 1; i <= n; ++i)
    if (p[i]) ++t;
  if (n - t > a[mi]) {
    cout << "NO";
    return 0;
  }
  cout << "YES" << endl;
  k = 0;
  while (k < 26 && (a[k] == 0 || k == mi)) ++k;
  if (k == 26) k = mi;
  for (int i = 1; i <= n; ++i)
    if (i == 1 || (2 * i > n && p[i])) {
      cout << char('a' + k);
      --a[k];
      while (k < 26 && (a[k] == 0 || k == mi)) ++k;
      if (k == 26) k = mi;
    } else {
      cout << char('a' + mi);
      --a[mi];
    }
}
