code: public int searchLowerBound(MonikerComparator moniker, int treap) {
  		int cur = getRoot(treap);
  		int bound = -1;
  		while (cur != nullNode()) {
  			int res = moniker.compare(this, cur);
  			if (res == 0)
  				return cur;
  			else if (res < 0)
  				cur = getLeft(cur);
  			else {
  				bound = cur;
  				cur = getRight(cur);
  			}
  		}
  
  		return bound;
  	}
docs: Returns closest smaller (Comparator::compare returns -1) or any equal.