Загрузка данных


#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void move(char direction, ll &x, ll&y) {
    cout << direction << endl;
    string result;
    cin >> result;
    if (result == "win" || result == "fail") {
        exit(0);
    }
    if (result == "new") {
        cin >> x;
        cin >> y;
    }
    return;
}
int main() {
    ll n;
    cin >> n;
    ll m;
    cin >> m;
    ll y;
    cin >> y;
    ll x;
    cin >> x;
    ll apple_y;
    cin >> apple_y;
    ll apple_x;
    cin >> apple_x;
    while (x > 1) {
        if (x-1 == apple_x && y == apple_y) {
            if (y+1 >  n) {
                --y;
                move('U', apple_x, apple_y);
            } else {
                ++y;
                move('D', apple_x, apple_y);
            }
        }
        --x;
        move('L', apple_x, apple_y);
    }
    string way;
    ll start_x = x;
    ll start_y = y;
    if ((n % 2 == 1 && m % 2 == 0) || (n % 2 == 0 && m % 2 == 0)) {
        while (x < m) {
            while (y < n) {
                way += 'D';
                move('D', apple_x, apple_y);
                ++y;
            }
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            while (y > 2) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
            if (x < m) {
                move('R', apple_x, apple_y);
                ++x;
                way += 'R';
            }
        }
        way += 'U';
        move('U', apple_x, apple_y);
        --y;
        while (x > 1) {
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
        }
        while (y < start_y) {
            way += 'D';
            move('D', apple_x, apple_y);
            ++y;
        }
    } else if (n % 2 == 0 && m % 2 == 1) {
        while (x < m - 3) {
            while (y < n) {
                way += 'D';
                move('D', apple_x, apple_y);
                ++y;
            }
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            while (y > 2) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
            if (x < m - 2) {
                move('R', apple_x, apple_y);
                ++x;
                way += 'R';
            }
        }
        while (y < n) {
            way += 'D';
            move('D', apple_x, apple_y);
            ++y;
        }
        move('R', apple_x, apple_y);
        ++x;
        way += 'R';
        while (y > 1) {
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            way += 'U';
            move('U', apple_x, apple_y);
            --y;
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
            if (y > 1) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
        }
        while (x > 1) {
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
        }
        while (y < start_y) {
            way += 'D';
            move('D', apple_x, apple_y);
            ++y;
        }
    } else {
        while (x < m - 3) {
            while (y < n) {
                way += 'D';
                move('D', apple_x, apple_y);
                ++y;
            }
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            while (y > 2) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
            if (x < m - 2) {
                move('R', apple_x, apple_y);
                ++x;
                way += 'R';
            }
        }
        while (y < n) {
            way += 'D';
            move('D', apple_x, apple_y);
            ++y;
        }
        move('R', apple_x, apple_y);
        ++x;
        way += 'R';
        way += 'U';
        move('U', apple_x, apple_y);
        --y;
        while (y > 1) {
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            way += 'U';
            move('U', apple_x, apple_y);
            --y;
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
            if (y > 1) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
        }
        while (x > 1) {
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
        }
        while (x < m - 3) {
            while (y < n) {
                way += 'D';
                move('D', apple_x, apple_y);
                ++y;
            }
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            while (y > 2) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
            if (x < m - 2) {
                move('R', apple_x, apple_y);
                ++x;
                way += 'R';
            }
        }
        while (y < n) {
            way += 'D';
            move('D', apple_x, apple_y);
            ++y;
        }
        move('R', apple_x, apple_y);
        ++x;
        way += 'R';
        while (y > 2) {
            move('R', apple_x, apple_y);
            ++x;
            way += 'R';
            way += 'U';
            move('U', apple_x, apple_y);
            --y;
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
            if (y < n) {
                way += 'U';
                move('U', apple_x, apple_y);
                --y;
            }
        }
        while (x > 1) {
            --x;
            move('L', apple_x, apple_y);
            way += 'L';
        }
        while (y < start_y) {
            way += 'D';
            move('D', apple_x, apple_y);
            ++y;
        }
    }
    while (true) {
        for (ll i = 0; i < ssize(way); ++i) {
            move(way[i], apple_x, apple_y);
        }
    }
    
}