import java.util.*;
import java.lang.*;
import java.io.*;

public class Main{
public static void main (String[] args){
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
}
} import java.util.*; util.* java import java.lang.*; lang.* java import java.io.*; io.* java public class Main{
public static void main (String[] args){
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
}
} Main public static void main (String[] args){
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
} main {
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int d = Integer.parseInt(sc.next()); d Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int[][] a = new int[n][d]; a new int[n][d] n d int c = 0; c 0 int e = 0; e 0 int count = 0; count 0 for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	} {
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	} for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		} int j = 0; int j = 0; j 0 j < d j d j++ j++ j {
			a[i][j]= Integer.parseInt(sc.next());
		} {
			a[i][j]= Integer.parseInt(sc.next());
		} a[i][j]= Integer.parseInt(sc.next()) a[i][j] a[i] a i j Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	} int i = 0; int i = 0; i 0 i < n - 1 i n - 1 n 1 i++ i++ i {
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	} {
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	} for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		} int j = i + 1; int j = i + 1; j i + 1 i 1 j < n j n j++ j++ j {
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		} {
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		} for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			} int k = 0; int k = 0; k 0 k < d k d k++ k++ k {
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			} {
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			} c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]) c (a[i][k] - a[j][k])*(a[i][k] - a[j][k]) (a[i][k] - a[j][k]) a[i][k] a[i] a i k a[j][k] a[j] a j k (a[i][k] - a[j][k]) a[i][k] a[i] a i k a[j][k] a[j] a j k e = (int)Math.sqrt(c) e (int)Math.sqrt(c) Math.sqrt Math c if(c == e * e)count++; c == e * e c e * e e e count++ count c=0 c 0 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){
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
}
} public class Main{
public static void main (String[] args){
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
}
} Main
import java.util.*;
import java.lang.*;
import java.io.*;

public class Main{
public static void main (String[] args){
	Scanner sc = new Scanner(System.in);
	int n = Integer.parseInt(sc.next());
	int d = Integer.parseInt(sc.next());
	int[][] a = new int[n][d];
	int c = 0;
	int e = 0;
	int count = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < d; j++){
			a[i][j]= Integer.parseInt(sc.next());
		}
	}
	for(int i = 0; i < n - 1; i++){
		for(int j = i + 1; j < n; j++){
			for(int k = 0; k < d; k++){
	c += (a[i][k] - a[j][k])*(a[i][k] - a[j][k]);
			}
			e = (int)Math.sqrt(c);
			if(c == e * e)count++;
			c=0;
		}
	}
	System.out.println(count);
}
}
