8587340257
 9
 81
 27
 1408514752349
 25
 49380563
 266418
 319757451841
 6599669076000
 8
 1000000000000
 30971726
 274875809788
 64
 34280152201
 236
 472670214391
 7938986881993
 44
 4
 388
 2
 802241960524
 3047527844089
 5
 12
 614125
 1716443237161
 48855707
 99
 9999925100701
 5839252225
 3
 50
 1307514188557
 9999926826034
 1468526771489
 2975
 8110708459517
 401120980262
 5138168457911
 1245373417369
 128
 16
 2000000014
 445538663413
 57461344602
 324
 7420738134810

1
9409 2 1
9 1
9 1
72361 2 1
289 1
6 1
289 1
4 1
4 1
4 2 1
4 1
4 2 1
4 1
23020027 1
378028993 1
4 2 1
4 1
0 1
4 2 1
0 1
4 1
25 1
5329 1
2603 1
9 1
0 1
25 1
0 1
10 1
39283 2 1
613783 1
25 2 2 2 1
908209 1
4 1
4 2 1
0 1
6 1
4 1
6
import java.util.Scanner;

public class Main {
   private static long move = 0;

   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      long n = Long.parseLong(sc.nextLine());
      int winner = play(n);
      System.out.println(winner);
      if (winner == 1) {
         System.out.println(move);
      }
   }

   private static int play(long num) {
      int count = 0;
      int partner = 0;
      long sqrt = (long) Math.sqrt(num);
      for (long i = 2; i <= sqrt; i++)
         if (num % i == 0) {
            long times = num;
            while (times % i == 0) {
               count++;
               if (count == 1)
                  move = i;
               else if (count == 2) {
                  move *= i;
                  if (partner > 0)
                     return 1;
               }
               else
                  return 1;
               times /= i;
               if (times > sqrt)
                  partner++;
            }
         }
      if (count == 0)
         return 1;
      else
         return 2;
   }
}