#include <bits/stdc++.h>
using namespace std;
const long long INF = (1LL << 45LL);
const long long MAXLL = 9223372036854775807LL;
const unsigned long long MAXULL = 18446744073709551615LLU;
const long long MOD = 1000000007;
const long double DELTA = 0.000000001L;
long long mpow(long long x, long long n1) {
  long long ret = 1;
  while (n1 > 0) {
    if (n1 % 2 == 1) ret = ret * x % MOD;
    x = x * x % MOD;
    n1 /= 2;
  }
  return ret;
}
long long inverse(long long x) { return mpow(x, MOD - 2); }
long long dx[4] = {0, 0, 1, -1};
long long dy[4] = {1, -1, 0, 0};
long long _gcd(long long a, long long b) {
  if (b == 0) return a;
  return _gcd(b, a % b);
}
long long n;
char A[100][100];
pair<long long, long long> s, e;
bool chk(long long i, long long j) {
  if (i >= 0 && i < n && j >= 0 && j < n) return true;
  return false;
}
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(NULL);
  std::cout.tie(NULL);
  long long n, m, k;
  cin >> n;
  string s;
  cin >> s;
  long long a = 0, b = 0;
  for (long long i = 0; i < (n); ++i) {
    if (s[i] == '0') {
      a++;
    } else {
      b++;
    }
  }
  if (a == b) {
    cout << 2 << endl;
    cout << s[0] << " ";
    for (long long i = 1; i <= (n - 1); ++i) {
      cout << s[i];
    }
    cout << endl;
  } else {
    cout << 1 << endl;
    cout << s << endl;
  }
  return 0;
}
