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

/* Fonction pour traiter l'image */
void modifier_image_pgm(const char *nom_fichier) {
    FILE *fichier;
    char ligne[256];
    int largeur, hauteur, niveaux, x, y;
    
    fichier = fopen(nom_fichier, "r+");
    if (fichier == NULL) {
        fprintf(stderr, "Erreur: Impossible d'ouvrir le fichier\n");
        exit(EXIT_FAILURE);
    }

    /* Lire l'en-tête du fichier PGM */
    fgets(ligne, sizeof(ligne), fichier); /* Lire le format (P2) */
    fgets(ligne, sizeof(ligne), fichier); /* Lire le commentaire */
    fscanf(fichier, "%d %d", &largeur, &hauteur);
    fscanf(fichier, "%d", &niveaux);

    /* Modifier les pixels d'intensité 3 au centre de l'image */
    for (y = 0; y < hauteur; y++) {
        for (x = 0; x < largeur; x++) {
            int pixel;
            fscanf(fichier, "%d", &pixel);
            if (pixel == 3 && x > 0 && x < largeur - 1 && y > 0 && y < hauteur - 1) {
                fseek(fichier, -2, SEEK_CUR);
                fprintf(fichier, "5 ");
            }
        }
    }

    fclose(fichier);
}

int main(int argc, char *argv[]) {
    if (argc != 2) {
        fprintf(stderr, "Usage: %s fichier.pgm\n", argv[0]);
        return EXIT_FAILURE;
    }

    modifier_image_pgm(argv[1]);
    return EXIT_SUCCESS;
}
