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

/* Fonction récursive pour trouver le maximum */
int trouver_maximum(int n, int valeurs[]) {
    if (n == 1) {
        return valeurs[0];
    }
    int max_suivant = trouver_maximum(n - 1, valeurs + 1);
    return (valeurs[0] > max_suivant) ? valeurs[0] : max_suivant;
}

int main(int argc, char *argv[]) {
    int i, n;
    int *valeurs;

    if (argc < 2) {
        fprintf(stderr, "Usage: %s nombre1 nombre2 ...\n", argv[0]);
        return EXIT_FAILURE;
    }

    n = argc - 1;
    valeurs = (int*)malloc(n * sizeof(int));
    if (valeurs == NULL) {
        fprintf(stderr, "Erreur d'allocation mémoire\n");
        return EXIT_FAILURE;
    }

    for (i = 0; i < n; i++) {
        valeurs[i] = atoi(argv[i + 1]);
    }

    printf("%d\n", trouver_maximum(n, valeurs));

    free(valeurs);
    return EXIT_SUCCESS;
}
