description: During the hypnosis session, Nicholas suddenly remembered a positive integer n, which doesn't contain zeros in decimal notation. 
  
  Soon, when he returned home, he got curious: what is the maximum number of digits that can be removed from the number so that the number becomes not prime, that is, either composite or equal to one?
  
  For some numbers doing so is impossible: for example, for number 53 it's impossible to delete some of its digits to obtain a not prime integer. However, for all n in the test cases of this problem, it's guaranteed that it's possible to delete some of their digits to obtain a not prime number.
  
  Note that you cannot remove all the digits from the number.
  
  A prime number is a number that has no divisors except one and itself. A composite is a number that has more than two divisors. 1 is neither a prime nor a composite number.
  
  Input
  
  Each test contains multiple test cases.
  
  The first line contains one positive integer t (1 ≤ t ≤ 10^3), denoting the number of test cases. Description of the test cases follows.
  
  The first line of each test case contains one positive integer k (1 ≤ k ≤ 50) — the number of digits in the number.
  
  The second line of each test case contains a positive integer n, which doesn't contain zeros in decimal notation (10^{k-1} ≤ n < 10^{k}). It is guaranteed that it is always possible to remove less than k digits to make the number not prime.
  
  It is guaranteed that the sum of k over all test cases does not exceed 10^4.
  
  Output
  
  For every test case, print two numbers in two lines. In the first line print the number of digits, that you have left in the number. In the second line print the digits left after all delitions. 
  
  If there are multiple solutions, print any.
  
  Example
  
  Input
  
  
  7
  3
  237
  5
  44444
  3
  221
  2
  35
  3
  773
  1
  4
  30
  626221626221626221626221626221
  
  
  Output
  
  
  2
  27
  1
  4
  1
  1
  2
  35
  2
  77
  1
  4
  1
  6
  
  Note
  
  In the first test case, you can't delete 2 digits from the number 237, as all the numbers 2, 3, and 7 are prime. However, you can delete 1 digit, obtaining a number 27 = 3^3.
  
  In the second test case, you can delete all digits except one, as 4 = 2^2 is a composite number.
solution: #include <bits/stdc++.h>
  using namespace std;
  namespace number_theory {
  int isprime(long long int a) {
    for (int i = 2; i * i <= a; i++) {
      if (a % i == 0) return 0;
    }
    return 1;
  }
  long long int binpow(long long a, long long b) {
    long long res = 1;
    while (b > 0) {
      if (b & 1) res = res * a;
      a = a * a;
      b >>= 1;
    }
    return res;
  }
  long long int binmod(long long int a, long long int b, long long int m) {
    a %= m;
    long long res = 1;
    while (b > 0) {
      if (b & 1) res = res * a % m;
      a = a * a % m;
      b >>= 1;
    }
    return res;
  }
  int powersimple(int a, int b) {
    int res = 1;
    while (b > 0) {
      if (b & 1) {
        res = (res * a);
        b--;
      }
      a = (a * a);
      b >>= 1;
    }
    return res;
  }
  void SieveOfEratosthenes(long long int n, bool prime[], bool primesquare[],
                           long long int a[]) {
    for (long long int i = 2; i <= n; i++) prime[i] = true;
    for (long long int i = 0; i <= (n * n + 1); i++) primesquare[i] = false;
    prime[1] = false;
    for (long long int p = 2; p * p <= n; p++) {
      if (prime[p] == true) {
        for (long long int i = p * 2; i <= n; i += p) prime[i] = false;
      }
    }
    long long int j = 0;
    for (long long int p = 2; p <= n; p++) {
      if (prime[p]) {
        a[j] = p;
        primesquare[p * p] = true;
        j++;
      }
    }
  }
  long long int countDivisors(long long int n) {
    if (n == 1) return 1;
    bool prime[n + 1], primesquare[n * n + 1];
    long long int a[n];
    SieveOfEratosthenes(n, prime, primesquare, a);
    long long int ans = 1;
    for (long long int i = 0;; i++) {
      if (a[i] * a[i] * a[i] > n) break;
      long long int cnt = 1;
      while (n % a[i] == 0) {
        n = n / a[i];
        cnt = cnt + 1;
      }
      ans = ans * cnt;
    }
    if (prime[n])
      ans = ans * 2;
    else if (primesquare[n])
      ans = ans * 3;
    else if (n != 1)
      ans = ans * 4;
    return ans;
  }
  long long int ncr(long long int n, long long int k) {
    long long int ans = 1;
    if (k > n - k) {
      k = n - k;
    }
    for (int i = 1; i <= k; i++) {
      ans *= (n - i + 1), ans /= i;
    }
    return ans;
  }
  int power(int r, int y, int p) {
    int res = 1;
    r = r % p;
    while (y > 0) {
      if (y & 1) res = (res * r) % p;
      y = y >> 1;
      r = (r * r) % p;
    }
    return res;
  }
  int modInverse(int n, int p) { return power(n, p - 2, p); }
  long long int divisionmodulo(long long int a, long long int b,
                               long long int mod) {
    return (a * binpow(b, mod - 2)) % mod;
  }
  long long int gcd(long long int a, long long int b) {
    if (b == 0)
      return a;
    else
      return gcd(b, a % b);
  }
  int countoccurrences(int arr[], int n, int x) {
    int res = 0;
    for (int i = 0; i < n; i++)
      if (x == arr[i]) res++;
    return res;
  }
  }  // namespace number_theory
  using namespace number_theory;
  void crossoff(bool* flag, long long int prime, long long int maxi) {
    for (long long int i = prime * prime; i <= maxi; i += prime) {
      flag[i] = false;
    }
  }
  long long int getnextprime(bool* flag, long long int prime,
                             long long int maxi) {
    int next = prime + 1;
    while (next <= maxi && !flag[next]) {
      next++;
    }
    return next;
  }
  vector<long long int> sieveoferatosthenes(long long int maxi) {
    bool flag[maxi + 1];
    vector<long long int> primenum;
    primenum.push_back(2);
    flag[0] = false;
    flag[1] = false;
    for (long long int i = 2; i <= maxi; i++) flag[i] = true;
    int prime = 2;
    while (prime <= sqrt(maxi)) {
      crossoff(flag, prime, maxi);
      prime = getnextprime(flag, prime, maxi);
      primenum.push_back(prime);
    }
    return primenum;
  }
  long long int pair_sum(long long int arr[], long long int size,
                         long long int x) {
    long long int arr_0 = 0;
    long long int arr_1 = size - 1;
    long long int count = 0;
    while (arr_0 < arr_1) {
      if (arr[arr_0] + arr[arr_1] <= x) {
        count = count + (arr_1 - arr_0);
        arr_0++;
      } else {
        arr_1--;
      }
    }
    return count;
  }
  map<long long int, long long int> xs, ys;
  long long int calc(long long int n) {
    long long int calculation = 5 * (binpow(2, n) - 1);
    return calculation;
  }
  string inttobit(long long int n) {
    string bit = "";
    while (n != 0) {
      char val = 48 + (n % 2);
      bit = bit + val;
      n /= 2;
    }
    return bit;
  }
  int main() {
    long long int t;
    cin >> t;
    while (t--) {
      long long int n;
      cin >> n;
      string s;
      cin >> s;
      long long int flag = 0;
      set<long long int> element;
      long long int id2 = -1, id3 = -1, id5 = -1, id7 = -1;
      long long int maxid = -1;
      long long int count2 = 0, count3 = 0, count5 = 0, count7 = 0;
      for (long long int i = 0; i < s.length(); i++) {
        long long int num = s[i] - 48;
        element.insert(num);
        if (num == 2 && id2 == -1) id2 = i;
        if (num == 3 && id3 == -1) id3 = i;
        if (num == 5 && id5 == -1) id5 = i;
        if (num == 7 && id7 == -1) id7 = i;
        if (num == 2) count2++;
        if (num == 3) count3++;
        if (num == 5) count5++;
        if (num == 7) count7++;
        if (num == 0) {
          maxid = max(i, maxid);
        }
        if (num == 1) {
          cout << 1 << endl;
          cout << num << endl;
          flag = 1;
          break;
        }
        if (num == 4) {
          cout << 1 << endl;
          cout << num << endl;
          flag = 1;
          break;
        }
        if (num == 6) {
          cout << 1 << endl;
          cout << num << endl;
          flag = 1;
          break;
        }
        if (num == 8) {
          cout << 1 << endl;
          cout << num << endl;
          flag = 1;
          break;
        }
        if (num == 9) {
          cout << 1 << endl;
          cout << num << endl;
          flag = 1;
          break;
        }
      }
      if (flag == 1) continue;
      if (element.find(2) != element.end() && element.find(7) != element.end()) {
        cout << 2 << endl;
        if (id2 < id7)
          cout << 27 << endl;
        else
          cout << 72 << endl;
      } else if (element.find(5) != element.end() &&
                 element.find(7) != element.end()) {
        cout << 2 << endl;
        if (id5 > id7)
          cout << 75 << endl;
        else
          cout << 57 << endl;
      } else if (count2 >= 2) {
        cout << 2 << endl;
        cout << 22 << endl;
      } else if (count3 >= 2) {
        cout << 2 << endl;
        cout << 33 << endl;
      } else if (count7 >= 2) {
        cout << 2 << endl;
        cout << 77 << endl;
      } else if (count5 >= 2) {
        cout << 2 << endl;
        cout << 55 << endl;
      } else if (element.find(5) != element.end() &&
                 element.find(2) != element.end()) {
        cout << 2 << endl;
        if (id2 > id5)
          cout << 52 << endl;
        else
          cout << 25 << endl;
      } else if (element.find(5) != element.end() &&
                 element.find(3) != element.end() && id5 > id3) {
        cout << 2 << endl;
        if (id5 > id3) cout << 35 << endl;
      } else if (element.find(2) != element.end() &&
                 element.find(3) != element.end() && id2 > id3) {
        cout << 2 << endl;
        if (id2 > id3) cout << 32 << endl;
      }
    }
    return 0;
  }
  