#include <stdio.h>
#include <omp.h>

int main (int argc, char *argv[]) {
  int n; sscanf (argv[1], "%d", &n);
  omp_set_nested (1);
  #pragma omp parallel for
    for (int i = 1; i <= n; i++) {
      #pragma omp parallel for
        for (int j = 1; j <= n; j++) {
          printf ("%d/%d: (%d,%d)\n",
                  omp_get_thread_num (),
                  omp_get_ancestor_thread_num (1),
                  i, j);
        }
    }
  return 0;
}
