#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void cmn(T &a, const T &b) {
  if (b < a) a = b;
}
template <class T>
inline void cmx(T &a, const T &b) {
  if (b > a) a = b;
}
const double eps = 1e-9;
const long double leps = 1e-14;
string inp;
const int MN = 1000 + 100;
int cnt[MN];
bool mp[MN];
bool mark[MN];
int n, cc;
int main(int argc, char *argv[]) {
  ios_base::sync_with_stdio(false);
  cin >> inp;
  n = ((int((inp).size())));
  for (int i = 2; i <= n; i++)
    if (mp[i] == 0)
      for (int j = 2 * i; j <= n; j += i) mp[j] = 1;
  for (int i = 0; i < n; i++) cnt[inp[i] - 'a']++;
  for (int i = 2; i <= n; i++)
    if (i == 2 || mp[i] || (!mp[i] && 2 * i <= n)) cc++, mark[i] = 1;
  bool fnd = false;
  cerr << (("cc")) << " = " << ((cc)) << " " << '\n';
  for (int i = 0; i < 30; i++)
    if (cnt[i] >= cc) {
      fnd = true;
      for (int j = 0; j < n; j++)
        if (mark[j + 1]) inp[j] = (i + 'a'), cnt[i]--;
      break;
    }
  if (!fnd) {
    cout << "NO" << '\n';
    return 0;
  }
  cout << "YES" << '\n';
  int p = 0;
  for (int i = 0; i < n; i++)
    if (!mark[i + 1]) {
      while (cnt[p] == 0) p++;
      inp[i] = (p + 'a'), cnt[p]--;
    }
  cout << inp << '\n';
  return 0;
}
