#include #include #include #include #include using namespace std; long babelki(vector tab, int n) { for(int i=n-2;i>=0;--i) { for(int j=0;j<=i;++j) { if(tab[j] a, pair b) { if(a.first==b.first) return a.second co, pair w_czym) { if(co.first>=w_czym.first && co.first<=w_czym.second && co.second>=w_czym.first && co.second<=w_czym.second) return 1; return 0; } void szukaj(long long p, long long k, pair co, vector > tab, long long &wynik) { if(p==k && zawiera(tab[p],co)) { wynik=tab[p].first; return; } else if(p>=k) { wynik= -1; return; } long long i=(p+k)/2; if(zawiera(tab[i],co)) wynik= tab[i].first; else if(tab[i].firstco.second) szukaj(p,i-1,co,tab,wynik); else if(tab[i].secondco.second) szukaj(p,i-1,co,tab,wynik); } int main() { long long M, Q; while(scanf("%lld %lld", &M, &Q) && (M!=0 || Q!=0)) { vector klucz(M); map > czy2; vector > wyn; for(long long i=0;i temp=czy2[klucz[i]]; czy2[klucz[i]].push_back(i); for(int x=0;x