#include <bits/stdc++.h>
using namespace std;
long long int mod = 1000000007;
long long int powmod(long long int a, long long int b) {
  long long int res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
long long int gcd(long long int a, long long int b) {
  return b ? gcd(b, a % b) : a;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int t = 1;
  while (t--) {
    int n, d, flag = 1, m, x, y, t, gm = 0, c;
    string s, ans = "NO", r;
    cin >> s;
    r = s;
    n = s.length();
    int S[n + 1];
    memset(S, 0, sizeof(S));
    vector<int> prime;
    for (int i = (2); i < (n + 1); i++) {
      flag = 1;
      for (int j = 2; j * j <= i; j++) {
        if (i % j == 0) {
          flag = 0;
          break;
        }
      }
      if (flag == 1) {
        prime.push_back(i);
      }
    }
    int a[27];
    memset(a, 0, sizeof(a));
    for (int i = (0); i < (s.length()); i++) {
      a[s[i] - 'a']++;
    }
    c = (n / 2) - 1;
    for (int i = (n / 2 + 1); i < (n + 1); i++) {
      flag = 1;
      for (int j = (0); j < (prime.size()); j++) {
        if (prime[j] == i) {
          flag = 0;
          break;
        }
      }
      if (flag) c++;
    }
    for (int k = (0); k < (26); k++) {
      if (a[k] >= c) {
        ans = "YES";
        for (int i = 2; i <= n / 2; i++) {
          if ((S[i - 1] == 0) && a[k] > 0) {
            r[i - 1] = char(k + 'a');
            a[k]--;
            S[i - 1] = 1;
          }
        }
        for (int i = (n / 2 + 1); i < (n + 1); i++) {
          flag = 1;
          for (int j = (0); j < (prime.size()); j++) {
            if (prime[j] == i) {
              flag = 0;
              break;
            }
          }
          if (flag) {
            if ((S[i - 1] == 0) && a[k] > 0) {
              r[i - 1] = char(k + 'a');
              a[k]--;
              S[i - 1] = 1;
            }
          }
        }
        break;
      }
    }
    if (ans == "NO")
      cout << ans << endl;
    else {
      for (int i = (0); i < (n); i++) {
        if (!S[i]) {
          for (int j = (0); j < (26); j++) {
            if (a[j] > 0) {
              r[i] = char(j + 'a');
              a[j]--;
              S[i] = 1;
              break;
            }
          }
        }
      }
      cout << ans << endl;
      cout << r << endl;
    }
  }
  return 0;
}
