#include #include #include #include #include #include #include #include #include #include #define range(i, r) for(int i=0;i >(a, vector(b, c)) #define vvi std::vector > #define vvl std::vector > #define MODs 1000000007; #define MODn 1000000009; typedef long long int ll; using namespace std; int M=1; std::vector seg; void init(int N){ while(N>M)M*=2; M=M*2-1; for(int i=0;i> N; init(N); map > num; std::vector A(N); for(int i=0;i> A[i]; if(num.find(A[i])==num.end()) num.insert(make_pair(A[i], make_pair(i, -1))); else { pair p = num.at(A[i]); num.erase(A[i]); num.insert(make_pair(A[i], make_pair(p.first, i))); } } for(int i=0;i