You are given a sequence $s$ consisting of $n$ digits from $1$ to $9$.

You have to divide it into at least two segments (segment — is a consecutive sequence of elements) (in other words, you have to place separators between some digits of the sequence) in such a way that each element belongs to exactly one segment and if the resulting division will be represented as an integer numbers sequence then each next element of this sequence will be strictly greater than the previous one.

More formally: if the resulting division of the sequence is $t_1, t_2, \dots, t_k$, where $k$ is the number of element in a division, then for each $i$ from $1$ to $k-1$ the condition $t_{i} < t_{i + 1}$ (using numerical comparing, it means that the integer representations of strings are compared) should be satisfied.

For example, if $s=654$ then you can divide it into parts $[6, 54]$ and it will be suitable division. But if you will divide it into parts $[65, 4]$ then it will be bad division because $65 > 4$. If $s=123$ then you can divide it into parts $[1, 23]$, $[1, 2, 3]$ but not into parts $[12, 3]$.

Your task is to find any suitable division for each of the $q$ independent queries.


-----Input-----

The first line of the input contains one integer $q$ ($1 \le q \le 300$) — the number of queries.

The first line of the $i$-th query contains one integer number $n_i$ ($2 \le n_i \le 300$) — the number of digits in the $i$-th query.

The second line of the $i$-th query contains one string $s_i$ of length $n_i$ consisting only of digits from $1$ to $9$.


-----Output-----

If the sequence of digits in the $i$-th query cannot be divided into at least two parts in a way described in the problem statement, print the single line "NO" for this query.

Otherwise in the first line of the answer to this query print "YES", on the second line print $k_i$ — the number of parts in your division of the $i$-th query sequence and in the third line print $k_i$ strings $t_{i, 1}, t_{i, 2}, \dots, t_{i, k_i}$ — your division. Parts should be printed in order of the initial string digits. It means that if you write the parts one after another without changing their order then you'll get the string $s_i$.

See examples for better understanding.


-----Example-----
Input
4
6
654321
4
1337
2
33
4
2122

Output
YES
3
6 54 321
YES
3
1 3 37
NO
YES
2
21 22

Difficulty: interview

Starter code:

Solutions:
n=int(input())
for x in range(n):
    l=int(input())
    ar=input()
    a=int(ar[0])
    b=int(ar[1:])
    if(a<b):
        print("YES")
        print(2)
        print(a,b)
    else:
        print("NO")

for _ in range(int(input())):
    n=int(input())
    s=input()
    if int(s[:1])<int(s[1:]):
        print('YES')
        print(2)
        print(s[:1], s[1:])
    else:
        print('NO')


def ii():
    return int(input())
def mi():
    return list(map(int, input().split()))
def li():
    return list(mi())

for q in range(ii()):
    n = ii()
    s = input().strip()
    a, b = int(s[0]), int(s[1:])
    if a >= b:
        print('NO')
    else:
        print('YES')
        print(2)
        print(a, b)


for _ in range(int(input())):
	N = int(input())
	s = input()

	if len(s) == 1:
		print('NO')
	elif len(s) == 2:
		if s[0] < s[1]:
			print('YES\n2\n' + s[0] + ' ' + s[1])
		else:
			print('NO')
	else:
		print('YES\n2\n' + s[0] + ' ' + s[1:])


nQ = int(input())
for q in range(nQ):
    nD = int(input())
    ds = input()
    if nD >= 3:
        print("YES")
        print(2)
        print(ds[0], ds[1:])
    elif nD == 2 and int(ds[0]) < int(ds[1]):
        print("YES")
        print(2)
        print(ds[0], ds[1])
    else:
        print("NO")


for _ in range(int(input())):
    n = int(input())
    s = input()
    if n > 2:
        print("YES")
        print(2)
        print(s[0], s[1:])
    else:
        if s[0] < s[1]:
            print("YES")
            print(2)
            print(s[0], s[1:])
        else:
            print("NO")

from sys import stdin
cases=int(stdin.readline().strip())
for i in range(cases):
    n=int(stdin.readline().strip())
    s=stdin.readline().strip()
    if n>2 or s[0]<s[1]:
        print("YES")
        print(2)
        print(s[0],s[1::])
    else:
        print("NO")
        



n = int(input())

for _ in range(n):
    d = int(input())
    s = input()

    if len(s) == 1:
        print('NO')
    elif len(s) == 2:
        if s[0] < s[1]:
            print('YES')
            print(2)
            print(s[0],s[1:])
        else:
            print('NO')
    else:
        print('YES')
        print(2)
        print(s[0],s[1:])


t = int(input())

for case in range(0,t):
	len = int(input())
	num = input()
	if len==2:
		if num[0]>=num[1]:
			print("NO")
		else:
			print("YES")
			print(2)
			print(num[0], num[1])
	else:
		print("YES")
		print(2)
		print(num[0], num[1:])

q = int(input())
for i in range(q):
    n = int(input())
    s = input()
    if n == 2 and int(s[0]) >= int(s[1]):
        print('NO')
        continue
    print('YES')
    print(2)
    print(s[0], s[1:])



q = int(input())

for _ in range(q):
    n = int(input())
    s = input()
    if n > 2:
        print('YES')
        print(2)
        print(s[0],s[1:])
    else:
        if int(s[0]) >= int(s[1]):
            print('NO')
        else:
            print('YES')
            print(2)
            print(s[0],s[1])

n = int(input())
for i in range(n):
        input()
        s = input()
        b = int(s[0])
        c = int(s[1:])
        if b < c:
                print("YES")
                print(2)
                print(b,c)
        else:
                print("NO")

import re, math, decimal, bisect
def read(): return input().strip()
def iread(): return int(input().strip())
def viread(): return [int(_) for _ in input().strip().split()]

# code goes here
for q in range(iread()):
	n = iread()
	seq = read()
	a = int(seq[0])
	b = int(seq[1:])
	if a < b:
		print("YES")
		print(2)
		print(a, b)
	else:
		print("NO")


t = int(input())

for _ in range(t):
	n = int(input())
	a = list(input())

	if(int(a[0]) < int(''.join(a[1:n]))):
		print('YES')
		print(2)
		print(a[0], ''.join(a[1:n]))
	else:
		print('NO')

for _ in range(int(input())):
  input()
  s = input()
  if int(s[0]) < int(s[1:]):
    print('YES')
    print(2)
    print(s[0], s[1:])
  else:
    print('NO')


q=int(input())
for testcase in range(q):
    n=int(input())
    s=input()
    if n==2 and s[1]<=s[0]:
        print("NO")
    else:
        print("YES")
        print(2)
        print(s[0],s[1:])


for _ in range(int(input())):
    n = int(input())
    s = input()
    x = int(s[0])
    cnt = 0
    for i in range(1,n-1):
        if int(s[i]) > 0:
            cnt += 1
    if cnt or int(s[0]) < int(s[n-1]):
        print("YES")
        print(2)
        print(s[0],s[1:])
    else:
        print("NO")


t=int(input())
for z in range(t):
    n=int(input())
    s=input()
    if n>2:
        print("YES")
        print(2)
        print(s[0],s[1:])
    else:
        if int(s[0])>=int(s[1]):
            print("NO")
        else:
            print("YES")
            print(2)
            print(s[0],s[1])

        
            


for i in range(int(input())):
    n=int(input())
    s=input()
    if len(s)>2:
        print('YES')
        print(2)
        print(s[0],s[1:])
    else:
        if len(s)==1 or s[0]>=s[1]:
            print('NO')
        else:
            print('YES')
            print(2)
            print(s[0],s[1:])            


for i in range(int(input())):
    n = int(input())
    s = input()
    if n != 2 or int(s[0]) < int(s[1]):
        print('YES')
        print(2)
        print(s[0], s[1:])
    else:
        print('NO')

q = int(input())
for i in range(q):
    n = int(input())
    s = input()
    a = int(s[0])
    b = int(s[1:])
    if b <= a:
        print('NO')
    else:
        print('YES')
        print(2)
        print(a, b)

for _ in range(int(input())):
    n=int(input())
    s=input()
    if n==2 and int(s[0])>=int(s[1]):
        print("NO")
    else:
        print("YES",2,sep='\n')
        print(s[0],s[1:])

#JMD
#Nagendra Jha-4096

 
import sys
import math

#import fractions
#import numpy
 
###File Operations###
fileoperation=0
if(fileoperation):
    orig_stdout = sys.stdout
    orig_stdin = sys.stdin
    inputfile = open('W:/Competitive Programming/input.txt', 'r')
    outputfile = open('W:/Competitive Programming/output.txt', 'w')
    sys.stdin = inputfile
    sys.stdout = outputfile

###Defines...###
mod=1000000007
 
###FUF's...###
def nospace(l):
    ans=''.join(str(i) for i in l)
    return ans
 
 
 
##### Main ####
t=int(input())
for tt in range(t):
    n=int(input())
    s=str(input())
    if(n>2):
        print("YES")
        print(2)
        print(s[0],s[1:])
    else:
        if(int(s[0])<int(s[1])):
            print("YES")
            print(2)
            print(s[0],s[1:])
        else:
            print("NO")
    
    
#####File Operations#####
if(fileoperation):
    sys.stdout = orig_stdout
    sys.stdin = orig_stdin
    inputfile.close()
    outputfile.close()