Problem:
Score : 200 points

Problem Statement

The word internationalization is sometimes abbreviated to i18n.
This comes from the fact that there are 18 letters between the first i and the last n.

You are given a string s of length at least 3 consisting of lowercase English letters.
Abbreviate s in the same way.

Constraints

3 ≤ |s| ≤ 100 (|s| denotes the length of s.)

s consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

s

Output

Print the abbreviation of s.

Sample Input 1

internationalization

Sample Output 1

i18n

Sample Input 2

smiles

Sample Output 2

s4s

Sample Input 3

xyz

Sample Output 3

x1z

Solution in C (GCC 5.4.1) (judge verdict: Accepted)

/* kadai6_2
   Saikyo_Kazune
*/
#include <stdio.h>
#include <string.h>

 

 
int main(void){
    //宣言
   int SIZE = 103,length_str;
   
   char str[SIZE];
   fgets(str,SIZE,stdin);
   //文字列の長さ(null文字直前までの長さを調べる)
   length_str = strlen(str);
   //改行\nの分を削る
   length_str--;
   //答え用の文字列
   char ans[103]={'\0'};
   //先頭、末尾の文字を取る
   char head = str[0];
   char tail = str[length_str-1];
   //先頭、間の文字数、末尾の文字の順で結合する
   snprintf(ans,103,"%c%d%c",head,length_str-2,tail);
   //出力
   printf("%s\n",ans);
   return 0;
}