#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

int main(int argc, char* argv[])
{
    int p1[2],n,i,d;
    n=atoi(argv[1]);
    d=atoi(argv[2]);
    pipe(p1);
    if(!fork()) //B
    {
        int pid;
        close(p1[1]);
        while(read(p1[0],&pid,sizeof(int)))
         close(p1[0]);
        printf("TOTAL PID: %d \n",pid);
        sleep(10);
        exit(0);
    }
        for(i =1; i<= n; i++)
    {

        if(!fork()) //G
        {
            close(p1[0]);
            close(1);
            dup(p1[1]);
            close(p1[1]);
            execlp("./g","./g",NULL);


        }
        else
        {
            sleep(5);
            exit(0);
        }

    }
    for(i=1; i<=n; i++)
    {
        wait(0);
    }
    close(p1[0]);
    close(p1[1]);
    sleep(1);
//    system("ps -o pid,ppid,pgid,sess,comm");
    wait(0);
//    system("ps -o pid,ppid,pgid,sess,comm");

}
