t = int(input())
for i in range(t):
n,k = map(str,input().split())
n = int(n)
s = input()
ns = [0]*n
count = 0
for j in range(len(s)):
if s[j]!=k:
ns[j] = 1
count+=1
if count == 0:
print(0)
else:
pos = False
for k in range(n//2,n):
if(ns[k] == 0):
pos = True
print(1)
print(k+1)
break
if(not pos):
print(2)
print(n,n-1)
#include<bits/stdc++.h>
/*
author:- laksheya_0809
*/
using namespace std;
#define int long long
#define ii pair<int, int>
#define vi vector<int>
#define pb push_back
#define ppb pop_back
#define vvi vector<vi>
#define vii vector<ii>
#define ln << '\n'
#define sz(x) (int)((x).size())
#define _for(s, n, upd) for(int i = s; i < n; i+=upd)
#define rep(i, s, n) for(int i = s; i < (n); i++)
#define all(x) (x).begin(), (x).end()
#define allr(x) (x).rbegin(), (x).rend()
#define fill(x, y) memset(x, y, sizeof x)
#define mp map
#define ump unordered_map
const int MOD = 1000000007;
bool isprime(int x) {
if(x==1) return false;
for(int i = 2; i <= sqrt(x); i++)
if(x%i == 0)
return false;
return true;
}
void sol() {
int n;
char c;
cin >> n >> c;
string s; cin >> s;
bool flag = 1;
rep(i, 0, n)
flag &= s[i] == c;
if(flag) {
cout << 0 ln;
return;
}
for(int i = 2; i <= n; i++) {
flag = 1;
for(int j = i; j <= n; j+=i)
flag &= s[j-1] == c;
if(flag) {
cout << 1 ln << i ln;
return;
}
}
cout << 2 ln << n << " " << n-1 ln;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
cin >> t;
while(t--) sol();
return 0;
}
1593C - Save More Mice | 1217. Minimum Cost to Move Chips to The Same Position |
347. Top K Frequent Elements | 1503. Last Moment Before All Ants Fall Out of a Plank |
430. Flatten a Multilevel Doubly Linked List | 1290. Convert Binary Number in a Linked List to Integer |
1525. Number of Good Ways to Split a String | 72. Edit Distance |
563. Binary Tree Tilt | 1306. Jump Game III |
236. Lowest Common Ancestor of a Binary Tree | 790. Domino and Tromino Tiling |
878. Nth Magical Number | 2099. Find Subsequence of Length K With the Largest Sum |
1608A - Find Array | 416. Partition Equal Subset Sum |
1446. Consecutive Characters | 1618A - Polycarp and Sums of Subsequences |
1618B - Missing Bigram | 938. Range Sum of BST |
147. Insertion Sort List | 310. Minimum Height Trees |
2110. Number of Smooth Descent Periods of a Stock | 2109. Adding Spaces to a String |
2108. Find First Palindromic String in the Array | 394. Decode String |
902. Numbers At Most N Given Digit Set | 221. Maximal Square |
1200. Minimum Absolute Difference | 1619B - Squares and Cubes |