import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner scn=new Scanner(System.in);
        int n = scn.nextInt();
        int d=scn.nextInt();
        int[][] dot=new int[n][d];
        int answer=0;

        for(int i=0;i<n;i++){
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        }
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        }
        System.out.println(answer);
    }
} import java.util.Scanner; Scanner java.util class Main{
    public static void main(String[] args){
        Scanner scn=new Scanner(System.in);
        int n = scn.nextInt();
        int d=scn.nextInt();
        int[][] dot=new int[n][d];
        int answer=0;

        for(int i=0;i<n;i++){
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        }
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        }
        System.out.println(answer);
    }
} Main public static void main(String[] args){
        Scanner scn=new Scanner(System.in);
        int n = scn.nextInt();
        int d=scn.nextInt();
        int[][] dot=new int[n][d];
        int answer=0;

        for(int i=0;i<n;i++){
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        }
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        }
        System.out.println(answer);
    } main {
        Scanner scn=new Scanner(System.in);
        int n = scn.nextInt();
        int d=scn.nextInt();
        int[][] dot=new int[n][d];
        int answer=0;

        for(int i=0;i<n;i++){
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        }
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        }
        System.out.println(answer);
    } Scanner scn=new Scanner(System.in); scn new Scanner(System.in) int n = scn.nextInt(); n scn.nextInt() scn.nextInt scn int d=scn.nextInt(); d scn.nextInt() scn.nextInt scn int[][] dot=new int[n][d]; dot new int[n][d] n d int answer=0; answer 0 for(int i=0;i<n;i++){
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        } {
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        } for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            } int j=0; int j=0; j 0 j<d j d j++ j++ j {
                dot[i][j]=scn.nextInt();
            } {
                dot[i][j]=scn.nextInt();
            } dot[i][j]=scn.nextInt() dot[i][j] dot[i] dot i j scn.nextInt() scn.nextInt scn for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        } {
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        } for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            } int j=i+1; int j=i+1; j i+1 i 1 j<n j n j++ j++ j {
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            } {
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            } double check=0; check 0 for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                } int k=0; int k=0; k 0 k<d k d k++ k++ k {
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                } {
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                } check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]) check (dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]) (dot[i][k]-dot[j][k]) dot[i][k] dot[i] dot i k dot[j][k] dot[j] dot j k (dot[i][k]-dot[j][k]) dot[i][k] dot[i] dot i k dot[j][k] dot[j] dot j k check=Math.sqrt(check) check Math.sqrt(check) Math.sqrt Math check if(check==(int)check){
                    answer++;
                } check==(int)check check (int)check {
                    answer++;
                } answer++ answer System.out.println(answer) System.out.println System.out System System.out answer String[] args args
import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner scn=new Scanner(System.in);
        int n = scn.nextInt();
        int d=scn.nextInt();
        int[][] dot=new int[n][d];
        int answer=0;

        for(int i=0;i<n;i++){
            for(int j=0;j<d;j++){
                dot[i][j]=scn.nextInt();
            }
        }
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                double check=0;
                for(int k=0;k<d;k++){
                    check+=(dot[i][k]-dot[j][k])*(dot[i][k]-dot[j][k]);
                }
                check=Math.sqrt(check);
                if(check==(int)check){
                    answer++;
                }
            }
        }
        System.out.println(answer);
    }
}
