// Arup Guha
// 8/31/2023
// Code for COP 3502 Quiz 1 Version A Questions 3,4

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

char** eachShift(char* word);

int main() {

    // Call the function.
    char word[100];
    scanf("%s", word);
    char** grid = eachShift(word);

    // Print...
    for (int i=0; i<26; i++)
        printf("%s\n", grid[i]);

    // Clean up.
    for (int i=0; i<26; i++)
        free(grid[i]);
    free(grid);

    return 0;
}

char** eachShift(char* word) {

    // Allocate 26 arrays.
    char** res = calloc(26, sizeof(char*));
    int len = strlen(word);

    // Fill each array.
    for (int i=0; i<26; i++) {

        // Leave room for null char.
        res[i] = calloc(len+1, sizeof(char));

        // Just add the value i to the 0 to 25 value of the letter word[j]
        // Store resulting character.
        for (int j=0; j<len; j++)
            res[i][j] = ((word[j]-'A')+i)%26 + 'A';
        res[i][len] = '\0';
    }

    // Return pointer.
    return res;
}
