## 找规律
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = 2 * n - 1;
        if (n == 1 || n == 2) {
            System.out.println(-1);
            return;
        }
        if (n % 2 != 0) { //奇数行
            System.out.println(2);
            return;
        }
        //偶数行
        if(n%4==0){
            System.out.println(3);
        }
        if(n%4==2){
            System.out.println(4);
        }
  }
}
## 利用循环,解出所有数据
package com.example.demo1;


import java.util.*;
import java.util.stream.Collectors;


public class Main{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = 2 * n - 1;
        int[][] dp = new int[n][m];
        if (n == 1 || n == 2) {
            System.out.println(-1);
            return;
        }
        if (n % 2 != 0) { //奇数行
            System.out.println(2);
            return;
        }
        //偶数行
        for (int i=0;i<n;i++){
            for (int j=0;j<(2*i+1);j++){
                if(i==0 || i==1) {
                    dp[i][j]=1;
                    continue;
                }
                if(i>1 && j==0) {
                    dp[i][j]=1;
                    continue;
                } else if(i>1 && j==1){
                    dp[i][j]=i;
                    continue;
                }else {
                    dp[i][j] = dp[i - 1][j - 2] + dp[i - 1][j - 1] + dp[i - 1][j];
                }
            }
        }


        //1.暴力解法
        for (int i = 2; i < m; i++) {
//             dp[n-1][i] = f(n-1, i);
            //若存在偶数
            if (dp[n-1][i] % 2 == 0) {
                System.out.println(i + 1);
                return;
            }
            //若不存在偶数
            if (i == (m - 1)) {
                System.out.println(-1);
                return;
            }
        }
    }


}
## 利用递归,解出第i,j个数据
import java.util.Scanner;

public class Main {
   public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = 2 * n - 1;
        int[][] dp = new int[n][m];
        if (n == 1 || n == 2) {
            System.out.println(-1);
            return;
        }
        if (n % 2 != 0) { //奇数行
            System.out.println(2);
            return;
        }
        //偶数行
       /*for (int i=2;i<n;i++){
           for (int j=2;j<2*i+1;j++){
               dp[i][j]=f(i,j);
           }
       }*/


        //1.暴力解法
        for (int i = 2; i < m; i++) {
            dp[n-1][i] = f(n-1, i);
            //若存在偶数
            if (dp[n-1][i] % 2 == 0) {
                System.out.println(i + 1);
                return;
            }
            //若不存在偶数
            if (i == (m - 1)) {
                System.out.println(-1);
                return;
            }
        }
    }

    public static int f(int row, int column) {
        if (column>2*row) {
            return 0;
        }else if (row==1) {
            return 1;
        }else if (column==1){
            return row;
        }else if(column==0) {
            return 1;
        }

        return f(row - 1, column - 2) + f(row - 1, column - 1) + f(row - 1, column);
    }
}