import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] ins = sc.nextLine().split(" ");
        int n = Integer.parseInt(ins[0]);
        int d = Integer.parseInt(ins[1]);
        List<List<Integer>> locations = new ArrayList<>();
        for(int i = 0;i < n;i++){
            String[] locs = sc.nextLine().split(" ");
            List<Integer> loc1 = new ArrayList<>();
            for(String loc : locs){
                loc1.add(Integer.parseInt(loc));
            }
            locations.add(loc1);
        }
        int r = 0;
        for(int i = 0;i < locations.size();i++){
            for(int j = i; j < locations.size();j++){
                double calc = 0;
                for(int k = 0;k < d;k++){
                    double o = locations.get(i).get(k) - locations.get(j).get(k);
                    calc += o * o;
                }
                calc = Math.sqrt(calc);
                if ((calc == Math.floor(calc)) && calc != 0) {
                    r++;
                }
            }
        }
        System.out.println(r);
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz