# include using namespace std; mt19937 rand_Gen(44874577); const int MAXN = 102; int n,k,s,w,z,x,y; int p[150000]; int a[55],b[55]; int prices[1005][1005]; int best[MAXN][MAXN][100]; int change; struct pointss { int x,y; pointss(int __x = 0, int __y = 0) { x = __x; y = __y; } friend pointss operator + (const pointss &A, const pointss &B) { return pointss(A.x+B.x,A.y+B.y); } friend bool operator == (const pointss &A, const pointss &B) { return (A.x==B.x && A.y==B.y); } friend bool operator < (const pointss &A, const pointss &B) { if(A.x==B.x)return A.y0&&A.x<=n && A.y>0 && A.y<=n)return true; return false; } void change_place() { int i; for(i = 1; i<=k; i++) { a[i] = (a[i]*w+z)%n+1; b[i] = (b[i]*z+w)%n+1; } } set st; vector ans; char T[4] = {'U','L','D','R'}; int cost(pointss A) { long long mindist = 1e9,curr; int i; for(i = 1; i<=k; i++) { curr = (long long)(A.x-a[i])*(A.x-a[i]) + (long long)(A.y-b[i])*(A.y-b[i]); if(curr best[curr.x][curr.y][t-1]+prices[news.x+deltaX][news.y+deltaY])continue; if(!correct(pointss(news.x+deltaX,news.y+deltaY)))continue; pointss d = curr; bool fl = true; for(int h = t-1; h>=1; h--) { d = from[d.x][d.y][h]; if(d==news) { fl =0; break; } } if(fl) { best[news.x][news.y][t] = best[curr.x][curr.y][t-1]+prices[news.x+deltaX][news.y+deltaY]; from[news.x][news.y][t] = curr; } else { if(best[news.x][news.y][t]BEST) { BEST = best[i][j][sz]; W = pointss(i,j); } } stack st; //cout< 0; i--) { st.push(pointss(W.x,W.y)); W = from[W.x][W.y][i]; // cout< "< curr_route; vector best_route; int visited[1005][1005],ids; long long curr_Ans, best_Ans = 0; void find_best_route(pointss A, int turns) { visited[A.x][A.y] = ids; if(turns == 0) { if(best_Ans < curr_Ans) { best_Ans = curr_Ans; best_route = curr_route; } return ; } int dir; while(1) { dir = rand_Gen()%4; if(!correct(A+Z[dir]))continue; auto news = A+Z[dir]; if(visited[news.x][news.y]==ids) { if(rand_Gen()%3 > 0)continue; } break; } auto news = A+Z[dir]; if(visited[news.x][news.y]!=ids) { curr_Ans += cost(news); } curr_route.push_back(news); find_best_route(news,turns-1); curr_route.pop_back(); } char direction(pointss A, pointss B) { // cout< "<>n>>k>>s>>w>>z>>x>>y; int alldist = sqrt(2)*(n-1); int i; //cout<>p[i]; } for(i = 1; i<=k; i++) { cin>>a[i]; cin>>b[i]; } change = sqrt(s); // cout<best) { best = tek; news = h; dir = i; } } curr = news; ans.push_back(T[dir]); } for(auto q:ans) { /*if(q == 'L')q='U'; else if(q=='R')q='D'; else if(q=='D')q = 'R'; else q='L';*/ cout<