link

A

import sys
input = sys.stdin.readline

a, b = map(int, input().split())
if a == 1:
    print("LU" if b == 1 else "LD")
else:
    print("RU" if b == 1 else "RD")

B

import sys
input = sys.stdin.readline

n = int(input())
deg = [0 for i in range(n)]
for i in range(n - 1):
    u, v = map(int, input().split())
    
    u -= 1; v -= 1
    deg[u] += 1
    deg[v] += 1
    
for i in range(n):
    if deg[i] == n - 1:
        print(i + 1)
        break

C

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
print((n - 1) * m + (m - 1) * n)

D

import sys
input = sys.stdin.readline

n = int(input())
deg = [0 for i in range(n)]
for i in range(n - 1):
    u, v = map(int, input().split())
    
    u -= 1; v -= 1
    deg[u] += 1
    deg[v] += 1
    
ans = 0
for i in range(n):
    ans += max(0, deg[i] - 2)
print(ans)

E

import sys
input = sys.stdin.readline
from collections import deque

n, m, k = map(int, input().split())
x1, y1, x2, y2 = map(int, input().split())
x1 -= 1; y1 -= 1; x2 -= 1; y2 -= 1
dx = [1, 2, 1, 2, -1, -1, -2, -2]
dy = [2, 1, -2, -1, 2, -2, 1, -1]
dis = [[-1] * m for i in range(n)]
pa = [[(-1, -1) for j in range(m)] for i in range(n)]
q = deque()
q.append((x1, y1))
dis[x1][y1] = 0
while q:
    x0, y0 = q.popleft()
    for i in range(8):
        nx = x0 + dx[i]
        ny = y0 + dy[i]
        if 0 <= nx < n and 0 <= ny < m and dis[nx][ny] == -1:
            dis[nx][ny] = dis[x0][y0] + 1
            pa[nx][ny] = (x0,y0)
            q.append((nx, ny))
            
if dis[x2][y2] == -1 or dis[x2][y2] > k or (k - dis[x2][y2]) % 2 != 0:
    print("No")
    sys.exit(0)
    
res = []
curx, cury = x2, y2
while curx != -1:
    res.append((curx, cury))
    curx, cury = pa[curx][cury]
res.reverse()

def neigh(x, y):
    for i in range(8):
        nx = x + dx[i]
        ny = y + dy[i]
        if 0 <= nx < n and 0 <= ny < m:
            yield(nx, ny)
            
ex = k - dis[x2][y2]
ans = []
for i in range(1, len(res)):
    cur = res[i - 1]
    while ex > 1:
        nxt_on_path = res[i]
        c = None
        for nb in neigh(cur[0], cur[1]):
            c = nb
            break
        if c is None:
            break
        ans.append(c)
        ans.append(cur)
        ex -= 2
    ans.append(res[i])

cur = (x2, y2)
while ex > 1:
    c = None
    for nb in neigh(cur[0], cur[1]):
        c = nb
        break
    if c is None:
        break
    ans.append(c)
    ans.append(cur)
    ex -= 2
    
if ex != 0 or len(ans) != k:
    print("No")
    sys.exit(0)

print("Yes")
for x, y in ans:
    print(x + 1, y + 1)

F

#include "bits/stdc++.h"

using namespace std;
using i64 = int64_t;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin >> n;
    vector<vector<int>> adj(n);
    for (int i = 1; i < n; i++) {
        int u, v;
        cin >> u >> v;
        
        u -= 1, v -= 1;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    const int K = 9;
    vector<int> pa(n, -2), ord;
    pa[0] = -1;

    function<void(int)> dfs = [&](int u) {
        ord.push_back(u);
        for (auto v : adj[u]) {
            if (pa[v] == -2) {
                pa[v] = u;
                dfs(v);
            }
        }
    };

    dfs(0);

    vector down(n, vector<i64>(K + 1));
    for (auto u : ord) {
        down[u][0] = 1;
    }
    for (int i = (int) ord.size() - 1; i >= 0; i--) {
        int u = ord[i];
        for (auto v : adj[u]) {
            if (pa[v] == u) {
                for (int d = 0; d < K; d++) {
                    down[u][d + 1] += down[v][d];
                }
            }
        }
    }
    vector dp(n, vector<i64>(K + 1));
    dp[0] = down[0];
    for (auto u : ord) {
        for (auto v : adj[u]) {
            if (pa[v] == u) {
                dp[v][0] = 1;
                for (int d = 1; d <= K; d++) {
                    i64 fr = dp[u][d - 1];
                    if (d > 1) {
                        fr -= down[v][d - 2];
                    }
                    dp[v][d] = down[v][d] + fr;
                }
            }
        }
    }

    for (int i = 0; i < n; i++) {
        cout << dp[i][K] << " \n"[i == n - 1];
    }

    return 0;
}