public static BigInteger bi() throws Exception {
   return in.nextBigInteger();
 }
 public static char[] cs(int n) throws Exception {
   for (int i = 1; i <= n; i++) tempchars[i] = in.nextCharacter();
   return tempchars;
 }
 public static String s() throws Exception {
   return in.nextLine();
 }
 public static double[] ds(int n) throws Exception {
   for (int i = 1; i <= n; i++) tempdoubles[i] = in.nextDouble();
   return tempdoubles;
 }
 public static char c() throws Exception {
   return in.nextCharacter();
 }
 public static double d() throws Exception {
   return in.nextDouble();
 }
 public static long[] ls(int n) throws Exception {
   for (int i = 1; i <= n; i++) templongs[i] = in.nextLong();
   return templongs;
 }
 public static long l() throws Exception {
   return in.nextLong();
 }
 public static int[] is(int n) throws Exception {
   // int arr[] = new int[n+1];
   for (int i = 1; i <= n; i++) tempints[i] = in.nextInt();
   return tempints;
 }
 // *******************************I/O******************************//
 public static int i() throws Exception {
   // return Integer.parseInt(br.readLine().trim());
   return in.nextInt();
 }