struct lsh
{
int v[MAXN], vl;
lsh() { vl = 0; }
void pb(int val) { v[vl++] = val; } //向后加元素
void init() { sort(v, v + vl); vl = unique(v, v + vl) - v; } //初始化排序,重置大小
int find(int val) { return lower_bound(v, v + vl, val) - v;} //查找元素下标
int get(int pos) { return v[pos]; } //通过下标返回元素
};