import
java.util.HashMap;
class
GFG {
public
static
void
checkGoldenString(String S,
int
k)
{
HashMap<Character, Integer> occ =
new
HashMap<Character, Integer>();
int
n = S.length();
for
(
int
i =
0
; i < k; i++) {
if
(occ.containsKey(S.charAt(i))) {
occ.put(S.charAt(i), occ.get(S.charAt(i)) +
1
);
}
else
{
occ.put(S.charAt(i),
1
);
}
}
if
(occ.size() ==
2
) {
int
x = -
1
, y = -
1
;
for
(
char
item : occ.keySet()) {
if
(x == -
1
)
x = occ.get(item);
else
y = occ.get(item);
}
if
(x >= k /
3
&& y >= k /
3
) {
System.out.println(
"YES"
);
return
;
}
}
for
(
int
i = k; i < n; i++) {
occ.put(S.charAt(i - k), occ.get(S.charAt(i - k)) -
1
);
if
(occ.get(S.charAt(i - k)) ==
0
)
occ.remove(S.charAt(i - k));
if
(occ.containsKey(S.charAt(i))) {
occ.put(S.charAt(i), occ.get(S.charAt(i)) +
1
);
}
else
{
occ.put(S.charAt(i),
1
);
}
if
(occ.size() ==
2
) {
int
x = -
1
, y = -
1
;
for
(
char
item : occ.keySet()) {
if
(x == -
1
)
x = occ.get(item);
else
y = occ.get(item);
}
if
(x >= k /
3
&& y >= k /
3
) {
System.out.println(
"YES"
);
return
;
}
}
}
System.out.println(
"NO"
);
}
public
static
void
main(String args[]) {
int
K =
6
;
String S =
"abaaaa"
;
checkGoldenString(S, K);
K =
4
;
S =
"abbaaaa"
;
checkGoldenString(S, K);
}
}