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

int main() {
    int n;
    scanf("%d", &n);

    char** a = (char**)malloc(n * sizeof(char*));//malloc实现开辟二维数组
    for (int i = 0; i < n; i++) 
    {
        a[i] = (char*)malloc(100 * sizeof(char));
        scanf("%s",a[i]);
    }
    for (int i = 0; i < n; i++)
     {
        int length = strlen(a[i]);
        if (length >= 10) 
            printf("%c%d%c\n", a[i][0], length - 2,a[i][length - 1]);
        else 
            printf("%s\n", a[i]);
    }
    free(a);
    return 0;
}