#include<cstdio>#include<cstring>#include<cmath>int dp[2][61][61];int main(){ int L,R,N,i,j,k; while(~scanf("%d%d%d",&L,&R,&N)) { memset(dp,-1,sizeof(dp)); int now=0,pre=1; dp[pre][L][R]=0; while(N--) { memset(dp[now],-1,sizeof(dp[now])); int x; scanf("%d",&x); for(i=0;i<52;i++) { for(j=0;j<52;j++) { int v=dp[pre][i][j]; if(v==-1)continue; if((x>=i-8&&x<=i)||(x>=j&&x<=j+8)) { if(dp[now][i][j]==-1||dp[now][i][j]>v)dp[now][i][j]=v; } else { if(x<i-8) { for(k=x;k<=x+8;k++)if(k>=4&&k<52&&(k<j||k>=j+9)) { int tmp=sqrt((double)(i-k)); if(dp[now][k][j]==-1||dp[now][k][j]>v+tmp)dp[now][k][j]=v+tmp; } } else { for(k=x;k<=x+8;k++)if(k>=4&&k<52&&(k<j||k>=j+9)) { int tmp=sqrt((double)(k-i)); if(dp[now][k][j]==-1||dp[now][k][j]>v+tmp)dp[now][k][j]=v+tmp; } } if(x<j) { for(k=x-8;k<=x;k++)if(k>=0&&k<=47&&(k>i||k<=i-9)) { int tmp=sqrt((double)(j-k)); if(dp[now][i][k]==-1||dp[now][i][k]>v+tmp)dp[now][i][k]=v+tmp; } } else { for(k=x-8;k<=x;k++)if(k>=0&&k<=47&&(k>i||k<=i-9)) { int tmp=sqrt((double)(k-j)); if(dp[now][i][k]==-1||dp[now][i][k]>v+tmp)dp[now][i][k]=v+tmp; } } } } } now=1-now; pre=1-pre; } int ret=-1; for(i=0;i<52;i++) { for(j=0;j<52;j++) { if(dp[pre][i][j]!=-1&&(ret==-1||ret>dp[pre][i][j]))ret=dp[pre][i][j]; } } printf("%dn",ret); } return 0;}


