#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
return (a%b?gcd(b,a%b):b);
}
int main() {
int t;
cin >> t;
while(t--) {
int n;
cin >> n;
long long int a[n];
for(int i = 0; i < n; i++)
cin >> a[i];
long long int ans = 2, found = 0;
long long int pre[n], suf[n];
pre[0] = a[0];
for(int i = 1; i < n; i++) pre[i] = gcd(pre[i - 1], a[i]);
suf[n - 1] = a[n - 1];
for(int i = n - 2; i > -1; i--) suf[i] = gcd(suf[i + 1], a[i]);
vector<int> op;
int first = 0;
if(suf[1] != 1) ans--, found++, first++;
if(pre[n - 2] != 1) ans--, found++;
for(int i = 1; found < 2 && i < n - 1; i++)
if(gcd(pre[i - 1], suf[i + 1]) != 1) op.push_back(i + 1), found++;
if(found == 2) {
cout << ans << "\n";
if(ans == 1) {
if(first) cout << op[0] << " " << n << "\n";
else cout << 1 << " " << op[0] << "\n";
} else if(ans == 2) {
cout << 1 << " " << op[0] << "\n";
cout << op[1] << " " << n << "\n";
}
}
else cout << "-1\n";
}
}