import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
int[][] a = new int[num1][num2];
// int[][] b = new int[num1][num2];
for (int i = 0; i < num1; i++) {
for(int j = 0;j < num2;j++)
a[i][j] = scanner.nextInt();
}
int count = 0;
for (int i = 0; i < num1; i++) {
for(int k = 0;k < num2;k++){
if(!isPrime(a[i][k]))continue;
else{
int flag = 0;
for(int j = -1;j < 2;j++){
for(int l = -1;l < 2;l++){
int x = i + j;
int y = k + l;
if(x >= 0 && y >= 0 && x < num1 && y < num2 )
if(isPrime(a[x][y]))
flag++;
}
}
if(flag == 1)count++;}
}
}
System.out.println(count);
}public static void paiXu(int[] a,int length){
int temp;
for(int i = 0;i < length - 1;i++){
for(int k = 0;k < length - i - 1;k++){
if(a[k] > a[k + 1]){
temp = a[k];
a[k] = a[k + 1];
a[k + 1] = temp;
}
}
}
} public static void paiXud(int[] a){
int temp;
for(int i = 0;i < a.length - 1;i++){
for(int k = 0;k < a.length - i - 1;k++){
if(a[k] < a[k + 1]){
temp = a[k];
a[k] = a[k + 1];
a[k + 1] = temp;
}
}
}
} public static void paiXux(int[] a){
int temp;
for(int i = 0;i < a.length - 1;i++){
for(int k = 0;k < a.length - i - 1;k++){
if(a[k] > a[k + 1]){
temp = a[k];
a[k] = a[k + 1];
a[k + 1] = temp;
}
}
}
}
public static int MAX2(int[][] a){
int max = a[0][0];
for (int i = 0; i < a.length; i++) {
for(int j = 0;j < a[0].length;j++){
if(max < a[i][j])max = a[i][j];
}
}
return max;
}public static int MIN2(int[][] a){
int min = a[0][0];
for (int i = 0; i < a.length; i++) {
for(int j = 0;j < a[0].length;j++){
if(min > a[i][j])min = a[i][j];
}
}
return min;
}
public static int MAX(int[] a){
int max = a[0];
for (int i = 0; i < a.length; i++) {
if(max < a[i]){
max = a[i];
}
}
return max;
}
public static int MIN(int[] a){
int min = a[0];
for (int i = 0; i < a.length; i++) {
if(min > a[i]){
min = a[i];
}
}
return min;
}
public static int sum(int a){
int x,s = 0;
while(a != 0){
x = a % 10;
s = s + x;
a /= 10;
}
return s;
}
public static boolean isPrime(int a){
if(a <= 1)return false;
else
for(int i = 2;i <= Math.sqrt(a);i++){
if(a % i == 0)return false;
}return true;
}
public static long qiuYu(long i){
long a;
a = i % 10;
return a;
}
public static int daoXu(int x){
int s = 0,m;
while(x != 0){
m = x % 10;
s = s * 10 + m;
x /= 10;
}
return s;
}
public static int jiaWei(int x){
int s = 0,m;
while(x != 0){
m = x % 10;
s = s + m;
x /= 10;
}
return s;
}
public static int fun(int x){
if(x == 1 || x == 2)return 1;
else return fun(x - 1) + fun(x - 2);
}
}
/**************************************************************
Problem: 1997
User: admin
Language: Java
Result: Accepted
Time:795 ms
Memory:40140 kb
****************************************************************/