import java.util.*;
public class Solution {
/**
*
* @param x int整型
* @return int整型
*/
public boolean moreOk(long x, long y, long xx) {
long r1 = x * x - xx;
r1 = r1 > 0 ? r1 : -r1;
long r2 = y * y - xx;
r2 = r2 > 0 ? r2 : -r2;
System.out.println(x + "," + y + "," + xx + "\t" + r1 + "," + r2);
return r1 < r2;
}
public int mysqrt (int x) {
// write code here
long l = 0L, r = 1 << 17;
long mid = (l + r) >> 1;
while (l <= r) {
if (mid * mid == x)return new Long(mid).intValue();
if (mid * mid > x) {
if (moreOk(mid, mid - 1, (long)x)) {
return new Long(mid).intValue() - 1;
}
r = mid - 1;
} else {
if (moreOk(mid, mid + 1, (long)x)) {
return new Long(mid).intValue();
}
l = mid + 1;
}
mid = (l + r) >> 1;
}
return new Long(mid).intValue();
}
}