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]))
}
}
}