//详细思路希望能帮助你
#include <stdio.h>

int main() 
{
    int n,m;
    scanf("%d %d",&n,&m);
    int arr1[n][m];
    int arr2[n][m];//创建两个二维数组分别为arr1和arr2
    for(int i=0;i<n;i++)//对arr1输出
    {
        for(int j=0;j<m;j++)
        {
            scanf("%d",&arr1[i][j]);
        }
    }
    for(int i=0;i<n;i++)//对arr2输出
    {
        for(int j=0;j<m;j++)
        {
            scanf("%d",&arr2[i][j]);
        }
    }
    int count=0;//创建count变量记录相同位置下相同数的个数
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(arr1[i][j]==arr2[i][j])//判断相同
            {
                count++;//相同则count++
            }
        }
    }
    double similarity=(double)count/(n*m)*100;//定义相似度,count为int类型,转为double,*100是进行百分比
    printf("%0.2f",similarity);//保留小数后两位

    return 0;
}