import
java.util.ArrayList;
import
java.util.List;
public
class
Main
{
public
static
void
preComputeFreq(String S, List<
int
[]> freq) {
int
[] f =
new
int
[
26
];
for
(
int
i =
0
; i < S.length(); ++i) {
freq.set(i, f.clone());
freq.get(i)[S.charAt(i) -
'a'
]++;
f = freq.get(i);
}
}
public
static
String smallestAnagram(String S,
int
L,
int
R, List<
int
[]> freq) {
String ans =
""
;
for
(
int
i =
0
; i <
26
; i++) {
int
low =
0
;
if
(L >
0
) {
low = freq.get(L -
1
)[i];
}
for
(
int
j =
0
; j < freq.get(R)[i] - low; j++) {
ans += (
char
)(
'a'
+ i);
}
}
return
ans;
}
public
static
void
smallestAnagramUtil(String S,
int
N, List<
int
[]> queries) {
List<
int
[]> freq =
new
ArrayList<>();
for
(
int
i =
0
; i < N; i++) {
freq.add(
new
int
[
26
]);
}
preComputeFreq(S, freq);
for
(
int
[] x : queries) {
int
L = x[
0
];
int
R = x[
1
];
System.out.println(smallestAnagram(S, L, R, freq));
}
}
public
static
void
main(String[] args) {
String S =
"bbdfaaacaed"
;
int
N = S.length();
List<
int
[]> queries =
new
ArrayList<>();
queries.add(
new
int
[] {
0
,
4
});
queries.add(
new
int
[] {
4
,
8
});
smallestAnagramUtil(S, N, queries);
}
}