#include <iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cstring>
using namespace std;
int dist[20][20],dp[(1<<14)+40][18];
bool valid[20];
string S[20];
int n;
void update(int a,int b)
{
    int i;
    for(i=0;i<S[a].size();i++)
    {
        bool f=true;
        if(S[a].size()-i>S[b].size()) continue;
        for(int j=i,k=0;j<S[a].size();k++,j++)
            if(S[a][j]!=S[b][k]){
                f=false;
            }
        if(f) break;
    }
    dist[a][b]=S[a].size()-i;
}
bool contain(string a,string b)// a acontain b?
{
    if(a.size()>b.size()) return false;
    for(int i=0;i<b.size();i++){
        bool f=true;
        for(int j=0;j<a.size();j++)
            if(b[i+j]!=a[j]) f=false;
        if(f) return true;
    }
    return false;
}
void init()
{
    memset(valid,true,sizeof(valid));
    int hd=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(i==j) continue;
            else if(contain(S[i],S[j]))
                valid[i]=false;
    string temp[20];
    for(int i=1;i<=n;i++)
        if(valid[i]) temp[++hd]=S[i];
    n=hd;
    for(int i=1;i<=n;i++)
        S[i]=temp[i];
}
int main()
{
    //freopen("data.in","r",stdin);
    while(cin>>n&&n)
    {
        for(int i=1;i<=n;i++)
            cin>>S[i];
        init();
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(i==j) continue;
                    else update(i,j);
       /* for(int i=1;i<=n;i++,cout<<endl)
            for(int j=1;j<=n;j++)
                cout<<dist[i][j]<<" ";*/
        memset(dp,0,sizeof(dp));
        for(int S=0;S<(1<<n);S++)
            for(int j=0;j<n;j++)
        {
            if(!((1<<j)&S)) continue;
            int S2=S^(1<<j);
            for(int k=0;k<n;k++)
            {
                if(!((1<<k)&S2)) continue;
                dp[S][j+1]=max(dp[S][j+1],dp[S2][k+1]+dist[k+1][j+1]);
            }

        }
        int ans=0,temp=0;
        for(int i=1;i<=n;i++)
            ans=max(dp[(1<<n)-1][i],ans);
        for(int i=1;i<=n;i++)
            temp+=S[i].size();
        ans=temp-ans;
        cout<<ans<<endl;

    }
    return 0;
}