#include <bits/stdc++.h>
using namespace std;
string str;
int nums[100];
int N;
string jzt[500000];
int main() {
  scanf("%d", &N);
  cin >> str;
  int i, j, k;
  int len = str.length();
  for (i = 0; i < len; i++) {
    if (str[i] >= '0' && str[i] <= '9')
      nums[26 + str[i] - '0']++;
    else if (str[i] >= 'a' && str[i] <= 'z')
      nums[str[i] - 'a']++;
    else
      nums[str[i] - 'A' + 36]++;
  }
  int L, cnt = 0;
  int ans = 0;
  for (cnt = 1; cnt <= N; cnt++) {
    if (N % cnt == 0) {
      int tnum[100];
      for (i = 0; i <= 70; i++) tnum[i] = nums[i];
      L = N / cnt;
      bool fuck = true;
      for (int tot = 1; tot <= cnt && fuck; tot++) {
        if (L % 2 == 0) {
          int tl = 0;
          while (tl < L) {
            bool flag = false;
            for (j = 0; j <= 70; j++) {
              if (tnum[j] >= 2) {
                tnum[j] -= 2;
                flag = true;
                break;
              }
            }
            tl += 2;
            if (flag == false) fuck = false;
          }
        } else {
          int tl = 0;
          while (tl < L - 1) {
            bool flag = false;
            for (j = 0; j <= 70; j++) {
              if (tnum[j] >= 2) {
                tnum[j] -= 2;
                flag = true;
                break;
              }
            }
            tl += 2;
            if (flag == false) fuck = false;
          }
        }
      }
      if (fuck) {
        ans = cnt;
        break;
      }
    }
  }
  cout << ans << endl;
  cnt = ans;
  L = N / cnt;
  for (int tot = 1; tot <= cnt; tot++) {
    if (L % 2 == 0) {
      int tl = 0;
      while (tl < L) {
        bool flag = false;
        for (j = 0; j <= 70; j++) {
          if (nums[j] >= 2) {
            nums[j] -= 2;
            if (j >= 36)
              jzt[tot] += 'A' + j - 36;
            else if (j >= 26)
              jzt[tot] += '0' + j - 26;
            else
              jzt[tot] += 'a' + j;
            break;
          }
        }
        tl += 2;
      }
    } else {
      int tl = 0;
      while (tl < L - 1) {
        bool flag = false;
        for (j = 0; j <= 70; j++) {
          if (nums[j] >= 2) {
            nums[j] -= 2;
            if (j >= 36)
              jzt[tot] += 'A' + j - 36;
            else if (j >= 26)
              jzt[tot] += '0' + j - 26;
            else
              jzt[tot] += 'a' + j;
            break;
          }
        }
        tl += 2;
      }
    }
  }
  for (int tot = 1; tot <= cnt; tot++) {
    cout << jzt[tot];
    for (j = 0; j <= 70; j++) {
      if (nums[j] > 0) {
        nums[j]--;
        char ch;
        if (j >= 36)
          ch = 'A' + j - 36;
        else if (j >= 26)
          ch = '0' + j - 26;
        else
          ch = 'a' + j;
        cout << ch;
        break;
      }
    }
    int plen = jzt[tot].length();
    for (j = plen - 1; j >= 0; j--) cout << jzt[tot][j];
    cout << " ";
  }
  return 0;
}
