description: You are given a string s, consisting of n letters, each letter is either 'a' or 'b'. The letters in the string are numbered from 1 to n.
  
  s[l; r] is a continuous substring of letters from index l to r of the string inclusive. 
  
  A string is called balanced if the number of letters 'a' in it is equal to the number of letters 'b'. For example, strings "baba" and "aabbab" are balanced and strings "aaab" and "b" are not.
  
  Find any non-empty balanced substring s[l; r] of string s. Print its l and r (1 ≤ l ≤ r ≤ n). If there is no such substring, then print -1 -1.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 1000) — the number of testcases.
  
  Then the descriptions of t testcases follow.
  
  The first line of the testcase contains a single integer n (1 ≤ n ≤ 50) — the length of the string.
  
  The second line of the testcase contains a string s, consisting of n letters, each letter is either 'a' or 'b'.
  
  Output
  
  For each testcase print two integers. If there exists a non-empty balanced substring s[l; r], then print l r (1 ≤ l ≤ r ≤ n). Otherwise, print -1 -1.
  
  Example
  
  Input
  
  
  4
  1
  a
  6
  abbaba
  6
  abbaba
  9
  babbabbaa
  
  
  Output
  
  
  -1 -1
  1 6
  3 6
  2 5
  
  Note
  
  In the first testcase there are no non-empty balanced subtrings.
  
  In the second and third testcases there are multiple balanced substrings, including the entire string "abbaba" and substring "baba".
solution: import java.io.*;
  import java.util.*;
  
  public class Main {
  	static MyScanner sc = new MyScanner();
  	static FastWriter out=new FastWriter(System.out);
  	public static void main(String[] args) {
  		int t=sc.nextInt();
  		for(int i=0;i<t;i++) {
  		
  			solve();
  			out.flush();
  		}
  	}
  	
  	public static void solve() {
  		int n=sc.nextInt();
  		String s=sc.next();
  		int i1=-1,i2=-1;
  		for(int i=0;i<n-1;i++) {
  			String s1=s.substring(i, i+2);
  			if(s1.equals("ab") || s1.equals("ba")) {
  				i1=i+1;
  				i2=i+2;
  				break;
  			}
  		}
  		out.println(i1+" "+i2);
  	}
  	
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  class MyScanner {
  
  	BufferedReader br;
  	StringTokenizer st;
  
  	public MyScanner() {
  		br = new BufferedReader(new InputStreamReader(System.in));
  	}
  
  	String next() {
  		while (st == null || !st.hasMoreElements()) {
  			try {
  				st = new StringTokenizer(br.readLine());
  			} catch (IOException e) {
  				e.printStackTrace();
  			}
  		}
  		return st.nextToken();
  	}
  
  	int nextInt() {
  		return Integer.parseInt(next());
  	}
  
  	long nextLong() {
  		return Long.parseLong(next());
  	}
  
  	double nextDouble() {
  		return Double.parseDouble(next());
  	}
  
  	String nextLine() {
  		String str = "";
  		try {
  			str = br.readLine();
  		} catch (IOException e) {
  			e.printStackTrace();
  		}
  		return str;
  	}
  
  	public int[] nextIntArr(int n) {
  		int a[] = new int[n];
  		for (int i = 0; i < n; i++)
  			a[i] = nextInt();
  		return a;
  	}
  
  	public long[] nextLongArr(int n) {
  		long a[] = new long[n];
  		for (int i = 0; i < n; i++)
  			a[i] = nextLong();
  		return a;
  	}
  
  	public double[] nextDoubleArr(int n) {
  		double a[] = new double[n];
  		for (int i = 0; i < n; i++)
  			a[i] = nextDouble();
  		return a;
  	}
  
  	public String[] nextArr(int n) {
  		String a[] = new String[n];
  		for (int i = 0; i < n; i++)
  			a[i] = next();
  		return a;
  	}
  
  	public String[] nextLineArr(int n) {
  		String a[] = new String[n];
  		for (int i = 0; i < n; i++)
  			a[i] = nextLine();
  		return a;
  	}
  }
  class FastWriter
  {
  	private static final int BUF_SIZE = 1<<13;
  	private final byte[] buf = new byte[BUF_SIZE];
  	private final OutputStream out;
  	private int ptr = 0;
  
  	private FastWriter(){out = null;}
  
  	public FastWriter(OutputStream os)
  	{
  		this.out = os;
  	}
  
  	public FastWriter(String path)
  	{
  		try {
  			this.out = new FileOutputStream(path);
  		} catch (FileNotFoundException e) {
  			throw new RuntimeException("FastWriter");
  		}
  	}
  
  	public FastWriter write(byte b)
  	{
  		buf[ptr++] = b;
  		if(ptr == BUF_SIZE)innerflush();
  		return this;
  	}
  
  	public FastWriter write(char c)
  	{
  		return write((byte)c);
  	}
  
  	public FastWriter write(char[] s)
  	{
  		for(char c : s){
  			buf[ptr++] = (byte)c;
  			if(ptr == BUF_SIZE)innerflush();
  		}
  		return this;
  	}
  
  	public FastWriter write(String s)
  	{
  		s.chars().forEach(c -> {
  			buf[ptr++] = (byte)c;
  			if(ptr == BUF_SIZE)innerflush();
  		});
  		return this;
  	}
  
  	private static int countDigits(int l) {
  		if (l >= 1000000000) return 10;
  		if (l >= 100000000) return 9;
  		if (l >= 10000000) return 8;
  		if (l >= 1000000) return 7;
  		if (l >= 100000) return 6;
  		if (l >= 10000) return 5;
  		if (l >= 1000) return 4;
  		if (l >= 100) return 3;
  		if (l >= 10) return 2;
  		return 1;
  	}
  
  	public FastWriter write(int x)
  	{
  		if(x == Integer.MIN_VALUE){
  			return write((long)x);
  		}
  		if(ptr + 12 >= BUF_SIZE)innerflush();
  		if(x < 0){
  			write((byte)'-');
  			x = -x;
  		}
  		int d = countDigits(x);
  		for(int i = ptr + d - 1;i >= ptr;i--){
  			buf[i] = (byte)('0'+x%10);
  			x /= 10;
  		}
  		ptr += d;
  		return this;
  	}
  
  	private static int countDigits(long l) {
  		if (l >= 1000000000000000000L) return 19;
  		if (l >= 100000000000000000L) return 18;
  		if (l >= 10000000000000000L) return 17;
  		if (l >= 1000000000000000L) return 16;
  		if (l >= 100000000000000L) return 15;
  		if (l >= 10000000000000L) return 14;
  		if (l >= 1000000000000L) return 13;
  		if (l >= 100000000000L) return 12;
  		if (l >= 10000000000L) return 11;
  		if (l >= 1000000000L) return 10;
  		if (l >= 100000000L) return 9;
  		if (l >= 10000000L) return 8;
  		if (l >= 1000000L) return 7;
  		if (l >= 100000L) return 6;
  		if (l >= 10000L) return 5;
  		if (l >= 1000L) return 4;
  		if (l >= 100L) return 3;
  		if (l >= 10L) return 2;
  		return 1;
  	}
  
  	public FastWriter write(long x)
  	{
  		if(x == Long.MIN_VALUE){
  			return write("" + x);
  		}
  		if(ptr + 21 >= BUF_SIZE)innerflush();
  		if(x < 0){
  			write((byte)'-');
  			x = -x;
  		}
  		int d = countDigits(x);
  		for(int i = ptr + d - 1;i >= ptr;i--){
  			buf[i] = (byte)('0'+x%10);
  			x /= 10;
  		}
  		ptr += d;
  		return this;
  	}
  
  	public FastWriter write(double x, int precision)
  	{
  		if(x < 0){
  			write('-');
  			x = -x;
  		}
  		x += Math.pow(10, -precision)/2;
  		//		if(x < 0){ x = 0; }
  		write((long)x).write(".");
  		x -= (long)x;
  		for(int i = 0;i < precision;i++){
  			x *= 10;
  			write((char)('0'+(int)x));
  			x -= (int)x;
  		}
  		return this;
  	}
  
  	public FastWriter writeln(char c){
  		return write(c).writeln();
  	}
  
  	public FastWriter writeln(int x){
  		return write(x).writeln();
  	}
  
  	public FastWriter writeln(long x){
  		return write(x).writeln();
  	}
  
  	public FastWriter writeln(double x, int precision){
  		return write(x, precision).writeln();
  	}
  
  	public FastWriter write(int... xs)
  	{
  		boolean first = true;
  		for(int x : xs) {
  			if (!first) write(' ');
  			first = false;
  			write(x);
  		}
  		return this;
  	}
  
  	public FastWriter write(long... xs)
  	{
  		boolean first = true;
  		for(long x : xs) {
  			if (!first) write(' ');
  			first = false;
  			write(x);
  		}
  		return this;
  	}
  
  	public FastWriter writeln()
  	{
  		return write((byte)'\n');
  	}
  
  	public FastWriter writeln(int... xs)
  	{
  		return write(xs).writeln();
  	}
  
  	public FastWriter writeln(long... xs)
  	{
  		return write(xs).writeln();
  	}
  
  	public FastWriter writeln(char[] line)
  	{
  		return write(line).writeln();
  	}
  
  	public FastWriter writeln(char[]... map)
  	{
  		for(char[] line : map)write(line).writeln();
  		return this;
  	}
  
  	public FastWriter writeln(String s)
  	{
  		return write(s).writeln();
  	}
  
  	private void innerflush()
  	{
  		try {
  			out.write(buf, 0, ptr);
  			ptr = 0;
  		} catch (IOException e) {
  			throw new RuntimeException("innerflush");
  		}
  	}
  
  	public void flush()
  	{
  		innerflush();
  		try {
  			out.flush();
  		} catch (IOException e) {
  			throw new RuntimeException("flush");
  		}
  	}
  
  	public FastWriter print(byte b) { return write(b); }
  	public FastWriter print(char c) { return write(c); }
  	public FastWriter print(char[] s) { return write(s); }
  	public FastWriter print(String s) { return write(s); }
  	public FastWriter print(int x) { return write(x); }
  	public FastWriter print(long x) { return write(x); }
  	public FastWriter print(double x, int precision) { return write(x, precision); }
  	public FastWriter println(char c){ return writeln(c); }
  	public FastWriter println(int x){ return writeln(x); }
  	public FastWriter println(long x){ return writeln(x); }
  	public FastWriter println(double x, int precision){ return writeln(x, precision); }
  	public FastWriter print(int... xs) { return write(xs); }
  	public FastWriter print(long... xs) { return write(xs); }
  	public FastWriter println(int... xs) { return writeln(xs); }
  	public FastWriter println(long... xs) { return writeln(xs); }
  	public FastWriter println(char[] line) { return writeln(line); }
  	public FastWriter println(char[]... map) { return writeln(map); }
  	public FastWriter println(String s) { return writeln(s); }
  	public FastWriter println() { return writeln(); }
  }