#include<iostream>
#include<bits/stdc++.h>
#include<iomanip>
#include<cmath>
#include<cstring>
using namespace std;
bool flag;
string a1;
int a[71720],n,i,sumend,dp[811][811],m,la,j,k,x,y,z,b,c;
long long int sum;
bool cmp(int a,int b)
{
    return a>b;
}
int gcd(int a,int b)
{
    if(!b)
        return a;
    return gcd(b,a%b);
}
int maxx(short int a,short int b)
{
    if(a>b)
        return a;
    return b;
}
int gqt(int n)
{
    if(!n||n)
        return 1;
    if(n==2)
        return 0;
    for(i=3;i<=sqrt(n);i++)
        if(n%i==0)
            return 1;
    return 0;
}
int main()
{
    cin>>a1;
    la=a1.size();
    cout<<a1[0]<<la-2<<a1[la-1];
    /*while(y!=0)//数字反转模板
    {;
        sum=y%10;
        sumend*=10;
        sumend+=sum;
        y/=10;
    }
    sumend+=x;
    cout<<sumend<<endl;
    return 0;*/
   
    return 0;
}