import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	    Scanner scanner = new Scanner(System.in);
	    int N = scanner.nextInt();
	    int D = scanner.nextInt();
	    int X[][] = new int[N][D];
	    for(int i=0;i<N;i++){
	      for(int j=0;j<D;j++){
	        X[i][j] = scanner.nextInt();
	      }
	    }

	    int resultNumber = 0;
	    int temp = 0;
	    for(int i=0;i<N-1;i++){
	      for(int j=i+1;j<N;j++){
	        for(int k=0;k<D;k++){
	          temp += Math.pow((X[i][k] - X[j][k]),2);
	          if(k==D-1){
	            if(Math.sqrt(temp) == (int)Math.sqrt(temp)){
	              resultNumber++;
	            }
	            temp = 0;
	          }
	        }
	      }
	    }
	    System.out.println(resultNumber);
	    scanner.close();
	}

}

/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