/*我的直观想法是用一个数组freq记录学生被抓取的次数,从1到n的循环每次都初始化freq数组元素为0,然后随着指认链向前为freq数组元素赋值,被指认到一次就使得元素值++,一次指认后检查被指认元素的freq值是否> 1,大于1则打印当前学生编号并停止指认循环*/
#include <stdio.h>
#include <stdlib.h>

int main() {
    //读取数据
    int n;
    scanf("%d\n", &n);
    int *p = (int *)malloc(sizeof(int) * n);
    for(int i = 0; i < n; i++){
        scanf("%d", p + i);
    }
    
    //建立freq数组
    int *freq = (int *)malloc(sizeof(int) * n);

    //对每一个学生开始进行计算
    for(int a = 0; a < n; a++){
        //初始化freq数组
        for(int j = 0; j < n; j++){
            freq[j] = 0;
        }
        int cur = a;//当前被指认者,初始化为a
        while(1){
            freq[cur]++;//被指认者freq++
            if(freq[cur] > 1){//freq值大于1即为劝退者,打印结果,结束循环
                printf("%d ",cur + 1);
                break;
            }
            cur = p[cur] - 1;//cur转向下一个被指认者
        }
    }

    //释放空间
    free(p);
    free(freq);
    
    return 0;
}