import java.util.*;
public class Main {
public static void main
(String[] args
) { int[] arr = {1, 2, 2, 7, 8, 8, 8, 8, 9, 10};
int k = 8;
int firstIndex = findIndex(arr, k, true);
int lastIndex = findIndex(arr, k, false);
System.
out.
println(firstIndex
+ " " + lastIndex
); }
public static int findIndex(int[] arr, int k, boolean findFirst) {
int left = 0, right = arr.length - 1, result = -1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == k) {
result = mid;
if (findFirst) {
right = mid - 1;
} else {
left = mid + 1;
}
} else if (arr[mid] < k) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return result;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludFtdIGFyciA9IHsxLCAyLCAyLCA3LCA4LCA4LCA4LCA4LCA5LCAxMH07CiAgICAgICAgaW50IGsgPSA4OwogICAgICAgIGludCBmaXJzdEluZGV4ID0gZmluZEluZGV4KGFyciwgaywgdHJ1ZSk7CiAgICAgICAgaW50IGxhc3RJbmRleCA9IGZpbmRJbmRleChhcnIsIGssIGZhbHNlKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZmlyc3RJbmRleCArICIgIiArIGxhc3RJbmRleCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgZmluZEluZGV4KGludFtdIGFyciwgaW50IGssIGJvb2xlYW4gZmluZEZpcnN0KSB7CiAgICAgICAgaW50IGxlZnQgPSAwLCByaWdodCA9IGFyci5sZW5ndGggLSAxLCByZXN1bHQgPSAtMTsKCiAgICAgICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHsKICAgICAgICAgICAgaW50IG1pZCA9IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDI7CgogICAgICAgICAgICBpZiAoYXJyW21pZF0gPT0gaykgewogICAgICAgICAgICAgICAgcmVzdWx0ID0gbWlkOwogICAgICAgICAgICAgICAgaWYgKGZpbmRGaXJzdCkgewogICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IG1pZCArIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJyW21pZF0gPCBrKSB7CiAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KfQo=