← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func getCell(m, n int) (int, int) {
	r := m / n
	c := m % n
	if r%2 == 1 {
		c = n - 1 - c
	}
	return r, c
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	if _, err := fmt.Fscan(reader, &t); err != nil {
		return
	}

	for tc := 0; tc < t; tc++ {
		var n, k int
		fmt.Fscan(reader, &n, &k)

		C := n*n - k
		if C == 1 {
			fmt.Fprintln(writer, "NO")
			continue
		}

		fmt.Fprintln(writer, "YES")
		grid := make([][]byte, n)
		for i := 0; i < n; i++ {
			grid[i] = make([]byte, n)
			for j := 0; j < n; j++ {
				if i%2 == 0 {
					if j == n-1 {
						grid[i][j] = 'D'
					} else {
						grid[i][j] = 'R'
					}
				} else {
					if j == 0 {
						grid[i][j] = 'D'
					} else {
						grid[i][j] = 'L'
					}
				}
			}
		}

		if C >= 2 {
			r1, c1 := getCell(C-2, n)
			r2, c2 := getCell(C-1, n)
			if r1 == r2 {
				if c1 < c2 {
					grid[r2][c2] = 'L'
				} else {
					grid[r2][c2] = 'R'
				}
			} else {
				if r1 < r2 {
					grid[r2][c2] = 'U'
				} else {
					grid[r2][c2] = 'D'
				}
			}
		}

		for i := 0; i < n; i++ {
			fmt.Fprintln(writer, string(grid[i]))
		}
	}
}