Unable to find mistak in my binary search program , it always return -1

import java.util.ArrayList;
import java.util.Scanner;
import java.util.Collections;
class practice{
public static Scanner scn = new Scanner(System.in);
public static void main(String [] args){
// sieveOfErastothenes();
// sortGame();
// stringSort();
binarySearch();
}

public static int search(int [] arr, int item, int lo, int hi){
    if(lo <=hi){
    int mid = (lo + hi)/2;

    if(arr[mid]==item){
        return mid;
    }else if(item < arr[mid]){
        return search(arr, item, lo, mid-1);
    }else if(item > arr[mid]){
        return search(arr, item , mid+1, hi);
    }
    
    }
    return -1;
}

public static void binarySearch(){
    int n = scn.nextInt();
    int [] arr = new int [n];
    for(int i =0; i< arr[i];i++){
        arr[i]=scn.nextInt();
    }
    int item = scn.nextInt();

    System.out.println(search(arr,item,0,arr.length-1));
}

}