import math
n,k = map(int,input().split())
if k > math.ceil(pow(n,2)/2):
print("NO")
else:
grid = [[0]*n for _ in range(n)]
ct = 0
for i in range(n):
for j in range(n):
if (i+j)%2 == 0 and ct < k:
grid[i][j] = "L"
ct += 1
else:
grid[i][j] = "S"
print("YES")
for i in range(n):
print("".join(grid[i]))
#include<bits/stdc++.h>
//Every problem is a gift without them we would not grow
//A person who never made a mistake never tried anything new
#include <string>
using namespace std;
typedef long long ll;
set<char>sets;
char mat[122][122];
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
mat[i][j]='S';
}
}
for(int i=0;i<n;i++)
{
if(i%2==0)
{
for(int j=0;j<n;j+=2)
if(k>0)
{
mat[i][j]='L';
k--;
}
}
else
{
for(int j=1;j<n;j+=2)
if(k>0)
{
mat[i][j]='L';k--;
}
}
}
if(k>0)
{
cout<<"NO";
}
else
{
cout<<"YES"<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<mat[i][j];
cout<<endl;
}
}
return 0;
}
969. Pancake Sorting | 967. Numbers With Same Consecutive Differences |
957. Prison Cells After N Days | 946. Validate Stack Sequences |
921. Minimum Add to Make Parentheses Valid | 881. Boats to Save People |
497. Random Point in Non-overlapping Rectangles | 528. Random Pick with Weight |
470. Implement Rand10() Using Rand7() | 866. Prime Palindrome |
1516A - Tit for Tat | 622. Design Circular Queue |
814. Binary Tree Pruning | 791. Custom Sort String |
787. Cheapest Flights Within K Stops | 779. K-th Symbol in Grammar |
701. Insert into a Binary Search Tree | 429. N-ary Tree Level Order Traversal |
739. Daily Temperatures | 647. Palindromic Substrings |
583. Delete Operation for Two Strings | 518. Coin Change 2 |
516. Longest Palindromic Subsequence | 468. Validate IP Address |
450. Delete Node in a BST | 445. Add Two Numbers II |
442. Find All Duplicates in an Array | 437. Path Sum III |
436. Find Right Interval | 435. Non-overlapping Intervals |