#include <unistd.h>
#include <stdio.h>
void thread_1(int fr){
    char buffer[1024];
    sprintf(buffer, "/proc/self/fd/%d", fr);
    freopen(buffer, "r", stdin);
    for(int i=0; i<10; i++){
        int temp;
        scanf("%d", &temp);
        printf("%d Fetched!\n", temp);
    }
}
void thread_2(int fw){
    char buffer[1024];
    sprintf(buffer, "/proc/self/fd/%d", fw);
    freopen(buffer, "w+", stdout);
    for(int i=0; i<10; i++){
        printf("%d\n", i+10);
    }
}
int main(){
    int p[2];
    pipe(p);
    pid_t ret=fork();
    if(ret==0){
        ret=fork();
        if(ret==0){
        }else{
            thread_2(p[1]);
        }
    }else{
        thread_1(p[0]);
    }
}