import
java.util.*;
import
java.lang.*;
class
pair
{
int
element,index;
pair(
int
element,
int
index)
{
this
.element = element;
this
.index = index;
}
}
class
GFG
{
static
void
minimumIndex(
int
[] arr,
int
[] Q)
{
int
N = arr.length;
int
M = Q.length;
ArrayList<pair> storeArrIdx =
new
ArrayList<>();
int
[] minIdx =
new
int
[N];
for
(
int
i =
0
; i < N; ++i)
{
storeArrIdx.add(
new
pair(arr[i], i));
}
Arrays.sort(arr);
Collections.sort(storeArrIdx, (a, b)->a.element-b.element);
minIdx[N -
1
]
= storeArrIdx.get(N -
1
).index;
for
(
int
i = N -
2
; i >=
0
; i--) {
minIdx[i] =Math.min(minIdx[i +
1
],
storeArrIdx.get(i).index);
}
for
(
int
i =
0
; i < M; i++) {
int
pos
= lower_bound(arr, Q[i]);
if
(pos == N) {
System.out.print(
"-1"
+
" "
);
continue
;
}
System.out.print(minIdx[pos]+
" "
);
}
}
static
int
lower_bound(
int
[] arr,
int
element)
{
for
(
int
i =
0
; i < arr.length; i++)
if
(element <= arr[i])
return
i;
return
arr.length;
}
public
static
void
main (String[] args)
{
int
[] arr = {
1
,
9
};
int
[] Q = {
7
,
10
,
0
};
minimumIndex(arr, Q);
}
}