#include <iostream>
using namespace std;
const int MAX_SIZE = 1000;
int main() {
int n, v[MAX_SIZE + 1];
cin >> n;
int zone = 0;
int counter = 0;
for (int i = 1; i <= n; ++i) {
cin >> v[i];
}
int destination = 1;
for(int i = 1, j = 1; destination <= n && v[i] != 0; ++destination ) {
int flag = 1;
if(v[j] != i ) {
j = v[j];
flag = 0;
}
if(v[j] == i) {
cout<< j << " "<< v[j] <<" \n";
++zone;
destination = 1;
j = 1;
++i;
v[i] = 0;
}
//
}
cout << zone ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWF9TSVpFICA9IDEwMDA7CmludCBtYWluKCkgewoJaW50IG4sIHZbTUFYX1NJWkUgKyAxXTsKCWNpbiA+PiBuOwoJaW50IHpvbmUgPSAwOwppbnQgY291bnRlciA9IDA7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKCQljaW4gPj4gdltpXTsKCX0KCQlpbnQgIGRlc3RpbmF0aW9uID0gMTsKCWZvcihpbnQgaSA9IDEsIGogPSAxOyBkZXN0aW5hdGlvbiA8PSBuICYmIHZbaV0gIT0gMDsgKytkZXN0aW5hdGlvbiApIHsKCgkJaW50CWZsYWcgPSAxOwoJCQoJCWlmKHZbal0gIT0gaSApIHsKCQkKCQkJaiA9IHZbal07CgkJCWZsYWcgPSAwOwoJCQkKCQl9CgkJCgkKCQlpZih2W2pdID09IGkpIHsKCQkJY291dDw8IGogPDwgIiAiPDwgdltqXSA8PCIgXG4iOwkKCQkJKyt6b25lOwoJCWRlc3RpbmF0aW9uID0gMTsKCQlqID0gMTsKCQkrK2k7CgkJdltpXSA9IDA7CgkJCgkJfQoJCi8vCgl9Cgljb3V0IDw8IHpvbmUgOwoJcmV0dXJuIDA7Cn0=