import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.lang.Math;

class Main{
	public static void main(String args[]){
    	String reg = "[+-]?\\d+\\.0";
    	List<List<Integer>> hoge = new ArrayList<>();
      	
      	Scanner sc = new Scanner(System.in);
      	String str = sc.nextLine();
      	int n = Integer.parseInt(str.split(" ")[0]);
      	int d = Integer.parseInt(str.split(" ")[1]);
      	
      	for(int i = 0; i < n; i++) {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	}
      	Pattern p = Pattern.compile(reg);
      	int count = 0;
      	for(int i = 0; i < n; i++) {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	}
      	System.out.println(count);
    }
	
	public static double distance(List<Integer> p1, List<Integer> p2) {
		//int distance = 0;
		double sum = 0;
		for(int i = 0; i < p1.size(); i++) {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		}
		return sum;
	}
} import java.util.*; util.* java import java.util.regex.Matcher; Matcher java.util.regex import java.util.regex.Pattern; Pattern java.util.regex import java.lang.Math; Math java.lang class Main{
	public static void main(String args[]){
    	String reg = "[+-]?\\d+\\.0";
    	List<List<Integer>> hoge = new ArrayList<>();
      	
      	Scanner sc = new Scanner(System.in);
      	String str = sc.nextLine();
      	int n = Integer.parseInt(str.split(" ")[0]);
      	int d = Integer.parseInt(str.split(" ")[1]);
      	
      	for(int i = 0; i < n; i++) {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	}
      	Pattern p = Pattern.compile(reg);
      	int count = 0;
      	for(int i = 0; i < n; i++) {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	}
      	System.out.println(count);
    }
	
	public static double distance(List<Integer> p1, List<Integer> p2) {
		//int distance = 0;
		double sum = 0;
		for(int i = 0; i < p1.size(); i++) {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		}
		return sum;
	}
} Main public static void main(String args[]){
    	String reg = "[+-]?\\d+\\.0";
    	List<List<Integer>> hoge = new ArrayList<>();
      	
      	Scanner sc = new Scanner(System.in);
      	String str = sc.nextLine();
      	int n = Integer.parseInt(str.split(" ")[0]);
      	int d = Integer.parseInt(str.split(" ")[1]);
      	
      	for(int i = 0; i < n; i++) {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	}
      	Pattern p = Pattern.compile(reg);
      	int count = 0;
      	for(int i = 0; i < n; i++) {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	}
      	System.out.println(count);
    } main {
    	String reg = "[+-]?\\d+\\.0";
    	List<List<Integer>> hoge = new ArrayList<>();
      	
      	Scanner sc = new Scanner(System.in);
      	String str = sc.nextLine();
      	int n = Integer.parseInt(str.split(" ")[0]);
      	int d = Integer.parseInt(str.split(" ")[1]);
      	
      	for(int i = 0; i < n; i++) {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	}
      	Pattern p = Pattern.compile(reg);
      	int count = 0;
      	for(int i = 0; i < n; i++) {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	}
      	System.out.println(count);
    } String reg = "[+-]?\\d+\\.0"; reg "[+-]?\\d+\\.0" List<List<Integer>> hoge = new ArrayList<>(); hoge new ArrayList<>() Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String str = sc.nextLine(); str sc.nextLine() sc.nextLine sc int n = Integer.parseInt(str.split(" ")[0]); n Integer.parseInt(str.split(" ")[0]) Integer.parseInt Integer str.split(" ")[0] str.split(" ") str.split str " " 0 int d = Integer.parseInt(str.split(" ")[1]); d Integer.parseInt(str.split(" ")[1]) Integer.parseInt Integer str.split(" ")[1] str.split(" ") str.split str " " 1 for(int i = 0; i < n; i++) {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	} {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	} List<Integer> zahyo = new ArrayList<>(); zahyo new ArrayList<>() str = sc.nextLine() str sc.nextLine() sc.nextLine sc for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		} int j = 0; int j = 0; j 0 j < d j d j++ j++ j {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		} {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		} zahyo.add(Integer.parseInt(str.split(" ")[j])) zahyo.add zahyo Integer.parseInt(str.split(" ")[j]) Integer.parseInt Integer str.split(" ")[j] str.split(" ") str.split str " " j hoge.add(zahyo) hoge.add hoge zahyo Pattern p = Pattern.compile(reg); p Pattern.compile(reg) Pattern.compile Pattern reg int count = 0; count 0 for(int i = 0; i < n; i++) {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	} {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	} for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		} int j = i+1; int j = i+1; j i+1 i 1 j < n j n j++ j++ j {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		} {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		} Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j))))); matcher p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j))))) p.matcher p String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))) String.valueOf String Math.sqrt(distance(hoge.get(i), hoge.get(j))) Math.sqrt Math distance(hoge.get(i), hoge.get(j)) distance hoge.get(i) hoge.get hoge i hoge.get(j) hoge.get hoge j if(matcher.matches()) count++; matcher.matches() matcher.matches matcher count++ count System.out.println(count) System.out.println System.out System System.out count String args[] args public static double distance(List<Integer> p1, List<Integer> p2) {
		//int distance = 0;
		double sum = 0;
		for(int i = 0; i < p1.size(); i++) {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		}
		return sum;
	} distance {
		//int distance = 0;
		double sum = 0;
		for(int i = 0; i < p1.size(); i++) {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		}
		return sum;
	} double sum = 0; sum 0 for(int i = 0; i < p1.size(); i++) {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		} int i = 0; int i = 0; i 0 i < p1.size() i p1.size() p1.size p1 i++ i++ i {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		} {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		} sum += Math.pow(p1.get(i) - p2.get(i), 2) sum Math.pow(p1.get(i) - p2.get(i), 2) Math.pow Math p1.get(i) - p2.get(i) p1.get(i) p1.get p1 i p2.get(i) p2.get p2 i 2 return sum; sum List<Integer> p1 p1 List<Integer> p2 p2
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.lang.Math;

class Main{
	public static void main(String args[]){
    	String reg = "[+-]?\\d+\\.0";
    	List<List<Integer>> hoge = new ArrayList<>();
      	
      	Scanner sc = new Scanner(System.in);
      	String str = sc.nextLine();
      	int n = Integer.parseInt(str.split(" ")[0]);
      	int d = Integer.parseInt(str.split(" ")[1]);
      	
      	for(int i = 0; i < n; i++) {
      		List<Integer> zahyo = new ArrayList<>();
      		str = sc.nextLine();
      		for(int j = 0; j < d; j++) {
      			zahyo.add(Integer.parseInt(str.split(" ")[j]));
      		}
      		hoge.add(zahyo);
      	}
      	Pattern p = Pattern.compile(reg);
      	int count = 0;
      	for(int i = 0; i < n; i++) {
      		for(int j = i+1; j < n; j++) {
      			//System.out.println(Math.sqrt(distance(hoge.get(i), hoge.get(j))));
      			Matcher matcher = p.matcher(String.valueOf(Math.sqrt(distance(hoge.get(i), hoge.get(j)))));
      			if(matcher.matches()) count++;
      		}
      	}
      	System.out.println(count);
    }
	
	public static double distance(List<Integer> p1, List<Integer> p2) {
		//int distance = 0;
		double sum = 0;
		for(int i = 0; i < p1.size(); i++) {
			sum += Math.pow(p1.get(i) - p2.get(i), 2);
		}
		return sum;
	}
}