#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";
    }
}