#include using namespace std; #define MAX 312345 struct X { int s; int p; bool b; } pole[MAX]; pair nas[MAX]; int n, q; int out[MAX]; void f(int kde, int cyk, int mod) { if(pole[kde].b) return; pole[kde].b=1; if(pole[kde].s==0) { while(mod < 2*q) { out[mod] = kde; mod += cyk; } return; } for(int i = pole[kde].p; i < pole[kde+1].p; i++) { f(nas[i].second, pole[kde].s*cyk, mod+(i-pole[kde].p)*cyk); } } int main() { pair pom; cin >> n >> q; while(n>MAX or q>MAX) { } for(int i=1; i> pom.first; pole[pom.first].s++; pom.second = i; nas[i-1]=pom; } sort(nas, nas+n-1); for(int i=0; i