#include <bits/stdc++.h>
using namespace std;
char f[410000], s[410000];
map<char, int> m;
int n, ans;
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  cin >> s;
  for (int i = 0; i <= n - 1; i++) m[s[i]]++;
  for (int i = '0'; i <= '9'; i++)
    if (1 & m[i]) ans++;
  for (int i = 'a'; i <= 'z'; i++)
    if (1 & m[i]) ans++;
  for (int i = 'A'; i <= 'Z'; i++)
    if (1 & m[i]) ans++;
  int p = (n - ans) / 2;
  int now = p, now2 = 0;
  for (int i = '0'; i <= '9'; i++) {
    if (1 & m[i]) {
      f[now] = i;
      now++;
      m[i]--;
    }
    while (now2 < p && m[i]) {
      m[i] -= 2;
      f[now2] = i;
      f[n - now2 - 1] = i;
      now2++;
    }
    if (now2 == p && m[i]) {
      while (m[i]) {
        m[i]--;
        f[now] = i;
        now++;
      }
    }
  }
  for (int i = 'a'; i <= 'z'; i++) {
    if (1 & m[i]) {
      f[now] = i;
      now++;
      m[i]--;
    }
    while (now2 < p && m[i]) {
      m[i] -= 2;
      f[now2] = i;
      f[n - now2 - 1] = i;
      now2++;
    }
    if (now2 == p && m[i]) {
      while (m[i]) {
        m[i]--;
        f[now] = i;
        now++;
      }
    }
  }
  for (int i = 'A'; i <= 'Z'; i++) {
    if (1 & m[i]) {
      f[now] = i;
      now++;
      m[i]--;
    }
    while (now2 < p && m[i]) {
      m[i] -= 2;
      f[now2] = i;
      f[n - now2 - 1] = i;
      now2++;
    }
    if (now2 == p && m[i]) {
      while (m[i]) {
        m[i]--;
        f[now] = i;
        now++;
      }
    }
  }
  if (ans == 0) {
    cout << 1 << endl;
    for (int i = 0; i <= n - 1; i++) cout << f[i];
    cout << endl;
    return 0;
  }
  for (int I = ans; I <= n; I++) {
    if (n % I != 0) continue;
    if ((n / I) % 2 == 0) continue;
    int len = n / I;
    now = (n - I) / 2;
    now2 = 0;
    cout << I << endl;
    for (int t = 1; t <= I; t++) {
      for (int i = 1; i <= len / 2; i++) {
        cout << f[now2 + i - 1];
      }
      cout << f[now];
      now++;
      now2 += len / 2;
      for (int i = 1; i <= len / 2; i++) {
        cout << f[now2 - i];
      }
      if (t != I)
        cout << ' ';
      else
        cout << endl;
    }
    break;
  }
}
