774_J. Stepan's Series
Well, the series which Stepan watched for a very long time, ended. In total, the series had n episodes. For each of them, Stepan remembers either that he definitely has watched it, or that he definitely hasn't watched it, or he is unsure, has he watched this episode or not. 

Stepan's dissatisfaction is the maximum number of consecutive series that Stepan did not watch.

Your task is to determine according to Stepan's memories if his dissatisfaction could be exactly equal to k.

Input

The first line contains two integers n and k (1 ≤ n ≤ 100, 0 ≤ k ≤ n) — the number of episodes in the series and the dissatisfaction which should be checked. 

The second line contains the sequence which consists of n symbols "Y", "N" and "?". If the i-th symbol equals "Y", Stepan remembers that he has watched the episode number i. If the i-th symbol equals "N", Stepan remembers that he hasn't watched the epizode number i. If the i-th symbol equals "?", Stepan doesn't exactly remember if he has watched the episode number i or not.

Output

If Stepan's dissatisfaction can be exactly equal to k, then print "YES" (without qoutes). Otherwise print "NO" (without qoutes).

Examples

Input

5 2
NYNNY


Output

YES


Input

6 1
????NN


Output

NO

Note

In the first test Stepan remembers about all the episodes whether he has watched them or not. His dissatisfaction is 2, because he hasn't watch two episodes in a row — the episode number 3 and the episode number 4. The answer is "YES", because k = 2.

In the second test k = 1, Stepan's dissatisfaction is greater than or equal to 2 (because he remembers that he hasn't watch at least two episodes in a row — number 5 and number 6), even if he has watched the episodes from the first to the fourth, inclusive.
```python
def process(S, k):
    n = len(S)
    if k > n:
        return 'NO'
    current = 0
    for i in range(n):
        if S[i]=='N':
            current+=1
            if current > k:
                return 'NO'
        else:
            current = 0
    start_work = True
    for i in range(k):
        if S[i]=='Y':
            start_work = False
    if start_work and (k==n or k < n and S[k] != 'N'):
        return 'YES'
    if n==1:
        if k==1 and S[0] in ['?N']:
            return 'YES'
        if k==0 and S[0] in ['?Y']:
            return 'YES'
        return 'NO'
    if k==n:
        if 'Y' in S:
            return 'NO'
        return 'YES'
    Y_count = 0
    p1 = 0
    for i in range(1, k+1):
        if S[i]=='Y':
            Y_count+=1
    p2 = i
    for i in range(k+1, n):
       # print(p1, Y_count, p2)
        if Y_count==0 and S[p1] != 'N' and (p2==n-1 or S[p2+1] != 'N'):
            return 'YES'
        p1+=1
        p2+=1
        if p2 < n and S[p2]=='Y':
            Y_count+=1
        if p1 < n and S[p1]=='Y':
            Y_count-=1
  #  print(p1, Y_count, p2)
    if Y_count==0 and p1 < n and S[p1] != 'N':
        return 'YES'
    return 'NO'

n, k = [int(x) for x in input().split()]
S = input()
print(process(S, k))
    
    
```