r[n] = 0;
da(r, sa, n + 1, m + 1);
calheight(r, sa, n);
int res = 0;
int left = 1, right = n;
while(left <= right)
{
int mid = (left + right) >> 1;
if(check(mid))
left = mid + 1;
res = max(res, mid);
}
else right = mid - 1;
}
printf("%d\n", res);
return 0;
}