public static int findFloor(int[] input, int start, int end, int k) {
        if(k < input[start]){
            return -1;
        }
        if(k > input[end]){
            return input[end];
        }

        int mid = (start +end)/2;

        if(input[mid]<=k && input[mid+1] > k){
            return input[mid];
        }

        if(input[mid] > k ){
            return findFloor(input,start,mid-1,k);
        }

        if(input[mid]<k && input[mid+1] < k) {
            return findFloor(input,mid+1,end,k);
        }


        return -1;

    }