#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
    int rank, n = 0;
    MPI_Init(NULL, NULL);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    if (rank == 0 && argc == 2) {
        n = atoi(argv[1]);
    }
    MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);

    if (n < 1) {
        if (rank == 0) fprintf(stderr, "Usage: mpi_argument N (positive integer)\n");
        MPI_Finalize();
        return 1;
    }

    printf("Rank %d knows n = %d\n", rank, n);
    MPI_Finalize();
    return 0;
}
