#include <bits/stdc++.h>
using namespace std;
namespace Sameh {
void ios_base() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
}
void endl() { cout << '\n'; }
void Erase_To(vector<long long>& R, long long To) {
  for (long long i = 0; i <= To; i++) {
    R.erase(R.begin());
  }
  return;
}
void Erase_From(vector<long long>& R, long long To) {
  for (long long i = 0; i < To; i++) {
    R.erase(R.end() - 1);
  }
  return;
}
long long Sum_of_digits(long long x) {
  long long Answer = 0;
  while (x != 0) {
    Answer += x % 10;
    x -= x % 10;
    x /= 10;
  }
  return Answer;
}
template <typename E1, typename N2>
long long binary_search(E1 S, N2 F) {
  long long First = 0;
  long long Last = (S.size()) - 1;
  long long Mid = (First + Last) / 2;
  while (!S.empty()) {
    First = 0;
    Last = (S.size()) - 1;
    Mid = (First + Last) / 2;
    if (S[Mid] == F) {
      return Mid;
    } else if (S[Mid] > F) {
      long long Erase = (Last - Mid);
      Erase_From(S, Erase);
    } else if (S[Mid] < F) {
      long long Erase = Mid;
      Erase_To(S, Erase);
    }
  }
  return -1;
}
}  // namespace Sameh
int32_t main() {
  Sameh::ios_base();
  long long n;
  cin >> n;
  long long i, d = 0;
  string s;
  cin >> s;
  for (i = 0; i < n; i++) d += s[i] - '0' ? 1 : -1;
  cout << (d ? "1\n" + s : "2\n" + s.substr(0, 1) + " " + s.substr(1));
  return 0;
}
