#include <bits/stdc++.h>
#define ll long long
#define mid ((l + r) >> 1)
#define lowbit(x) (x & -x)
using namespace std;
constexpr int N = 1e6 + 5;
int n, m, sum, pos;
int a[N], suf[N], buc[N << 1];
char s[N];
void Solve() {
	int x;
	cin >> x;
	
	if (x > sum) {
		cout << "NIE\n";
		return;
	} else if (~buc[x]) {
		cout << "1 " << buc[x] << '\n';
		return;
	} else if (x == 1) {
		if (pos) {
			cout << pos << ' ' << pos << '\n';
		} else {
			cout << "NIE\n";
		}
		return;
	}
	
	int p = buc[x - 1];
	if (suf[1] < suf[p + 1]) {
		cout << suf[1] + 2 << ' ' << p + suf[1] + 1 << '\n';
	} if (suf[1] >= suf[p + 1] && p + suf[p + 1] < n) {
		cout << suf[p + 1] + 1 << ' ' << p + suf[p + 1] + 1 << '\n';
	} else {
		cout << "NIE\n";
	}
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr); cout.tie(nullptr);
	
	cin >> n >> m >> s + 1;
	for (int i = 1; i <= n; ++i) {
		a[i] = 1 + (s[i] == 'T');
	}
	
	for (int i = n; i > 0; --i) {
		if (a[i] == 2) {
			suf[i] = suf[i + 1] + 1;
		}
	}
	fill(buc, buc + 2 * n + 1, -1);
	for (int i = 1; i <= n; ++i) {
		sum += a[i];
		buc[sum] = i;
		if (a[i] == 1) {
			pos = i;
		}
	}
	
	while (m--) {
		Solve();
	}
	
	return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |