using System;
public class Test
{
public static void Main()
{
var data = new string[9999999];
var max = 98765;
for (var i = 0 ; i <= max ; i++) {
data[i] = "hello";
}
var first = 0;
var last = data.Length-1;
while (first+1 < last) {
var mid = (first+last)/2;
if (string.IsNullOrEmpty(data[mid])) {
last = mid;
} else {
first = mid;
}
}
Console.WriteLine("{0} {1} {2} {3}", first, data[first], last, data[last]);
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBkYXRhID0gbmV3IHN0cmluZ1s5OTk5OTk5XTsKCQl2YXIgbWF4ID0gOTg3NjU7CgkJZm9yICh2YXIgaSA9IDAgOyBpIDw9IG1heCA7IGkrKykgewoJCQlkYXRhW2ldID0gImhlbGxvIjsKCQl9CgkJdmFyIGZpcnN0ID0gMDsKCQl2YXIgbGFzdCA9IGRhdGEuTGVuZ3RoLTE7CgkJd2hpbGUgKGZpcnN0KzEgPCBsYXN0KSB7CgkJCXZhciBtaWQgPSAoZmlyc3QrbGFzdCkvMjsKCQkJaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGFbbWlkXSkpIHsKCQkJCWxhc3QgPSBtaWQ7CgkJCX0gZWxzZSB7CgkJCQlmaXJzdCA9IG1pZDsKCQkJfQoJCX0KCQlDb25zb2xlLldyaXRlTGluZSgiezB9IHsxfSB7Mn0gezN9IiwgZmlyc3QsIGRhdGFbZmlyc3RdLCBsYXN0LCBkYXRhW2xhc3RdKTsKCQkKCX0KfQ==