import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class smith_nv {
    BufferedReader br;
    PrintWriter out;
    StringTokenizer stok;

    Random rand = new Random(31);

    String nextToken() throws IOException {
	while (stok == null || !stok.hasMoreTokens()) {
	    String s = br.readLine();
	    if (s == null) {
		return null;
	    }
	    stok = new StringTokenizer(s);
	}
	return stok.nextToken();
    }

    int nextInt() throws IOException {
	return Integer.parseInt(nextToken());
    }

    void solve() throws IOException {
	int n = nextInt();
	BigInteger cur = BigInteger.ONE;
	String a[] = new String[n];
	for (int i = 0; i < n; i++) {
	    a[i] = nextToken();
	    cur = cur.multiply(new BigInteger(a[i]));
	}
	ArrayList<Integer> ans = new ArrayList<Integer>();
	int it = 0;
	for (; it < n; it++) {
	    if (a[it].equals("0")) {
		continue;
	    }
	    BigInteger val1 = new BigInteger(a[it]);
	    BigInteger val2 = cur.divide(val1);
	    if (val1.compareTo(val2) > 0) {
		ans.add(it);
		break;
	    }
	    if (val2.compareTo(val1) > 0) {
		for (int i = 0; i < n; i++)
		    if (i != it) {
			ans.add(i);
		    }
		break;
	    }
	}
	if (it == n) {
	    out.println("Impossible");
	    return;
	}
	out.println(ans.size());
	for (int i = 0; i < ans.size(); i++) {
	    out.print((ans.get(i) + 1) + " ");
	}
    }

    void run() throws IOException {
	br = new BufferedReader(new FileReader("smith.in"));
	out = new PrintWriter("smith.out");
	solve();
	br.close();
	out.close();
    }

    public static void main(String[] args) throws IOException {
	Locale.setDefault(Locale.US);
	new smith_nv().run();
    }
}
