//Berezvai Dániel
//BEDTACI.ELTE

#include <iostream>
#include <stdlib.h>
using namespace std;

struct nap{int min, max, kulonbseg;};

int getFagy(nap a[], int size){
	int fagy=0;
	for(int i=0;i<size;i++){
		if(a[i].min<0)
			fagy++;
	}
	return fagy;
}
int getKulonbseg(nap a[], int size){
	int mx=0;
	for(int i=0;i<size;i++){
		if(a[mx].kulonbseg<a[i].kulonbseg)
			mx=i;
	}
	return mx+1;
}

int getElozonel(nap a[], int size){
	for(int i=1;i<size;i++){
		if(a[i].max<a[i-1].min){
			return i+1;
		}
	}
	return -1;
}

int getFagyolvad(nap a[], int size){
	int num=0;
	for(int i=0;i<size;i++){
		if(a[i].max>0 && a[i].min<0){
			num++;
		}
	}
	return num;
}

void printFagyolvad(nap a[], int size){
	for(int i=0;i<size;i++){
		if(a[i].max>0 && a[i].min<0){
			cout<<i+1<<" ";
		}
	}
}

int main(){
//beolvas
	int N;
	cin>>N;
	nap a[N];
	for(int i=0;i<N;i++){
		cin>>a[i].min;
		cin>>a[i].max;
		a[i].kulonbseg=a[i].max-a[i].min;
	}

//fagy
	cout<<getFagy(a,N)<<endl;

//kulonbseg
	cout<<getKulonbseg(a,N)<<endl;

//elozonel
	cout<<getElozonel(a,N)<<endl;

//fagyolvad
	cout<<getFagyolvad(a,N)<<" ";
	printFagyolvad(a,N);//Nem akartam kulon valtozoba tarolni. Termeszetesen egy lepesben szamolas+tarolas gyorsabb lenne.

	return 0;
}
