import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    }

} import java.util.Scanner; Scanner java.util public class Main {

    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    }

} Main public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    } main {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    } @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int d = sc.nextInt(); d sc.nextInt() sc.nextInt sc int[][] x = new int[n][d]; x new int[n][d] n d for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        } int i = 0 ; int i = 0 ; i 0 i < n i n i++ i++ i {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        } {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        } for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            } int j = 0 ; int j = 0 ; j 0 j < d j d j++ j++ j {
                x[i][j] = sc.nextInt();
            } {
                x[i][j] = sc.nextInt();
            } x[i][j] = sc.nextInt() x[i][j] x[i] x i j sc.nextInt() sc.nextInt sc int count = 0; count 0 for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        } int i = 0 ; int i = 0 ; i 0 i < n i n i++ i++ i {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        } {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        } for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            } int j = i + 1 ; int j = i + 1 ; j i + 1 i 1 j < n j n j++ j++ j {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            } {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            } int dis = 0; dis 0 for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                } int k = 0 ; int k = 0 ; k 0 k < d k d k++ k++ k {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                } {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                } dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]) dis (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]) (x[i][k] - x[j][k]) x[i][k] x[i] x i k x[j][k] x[j] x j k (x[i][k] - x[j][k]) x[i][k] x[i] x i k x[j][k] x[j] x j k for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                } int k = 1 ; int k = 1 ; k 1 k <= 200 k 200 k++ k++ k {
                    if (dis == k * k) count++;
                } {
                    if (dis == k * k) count++;
                } if (dis == k * k) count++; dis == k * k dis k * k k k count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {

    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    }

} public class Main {

    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    }

} Main
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int d = sc.nextInt();
        int[][] x = new int[n][d];
        for (int i = 0 ; i < n ; i++) {
            for (int j = 0 ; j < d ; j++) {
                x[i][j] = sc.nextInt();
            }
        }
        int count = 0;
        for (int i = 0 ; i < n ; i++) {
            for (int j = i + 1 ; j < n ; j++) {
                int dis = 0;
                for (int k = 0 ; k < d ; k++) {
                    dis += (x[i][k] - x[j][k]) * (x[i][k] - x[j][k]);
                }
                for (int k = 1 ; k <= 200 ; k++) {
                    if (dis == k * k) count++;
                }
            }
        }
        System.out.println(count);
    }

}
