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

public class Main
{
	public static void main(String [] Args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	}
}
	 import java.util.*; util.* java import java.io.*; io.* java public class Main
{
	public static void main(String [] Args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	}
} Main public static void main(String [] Args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	} main {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	} Scanner in=new Scanner(System.in); in new Scanner(System.in) int n=in.nextInt(); n in.nextInt() in.nextInt in int d=in.nextInt(); d in.nextInt() in.nextInt in int [][] a=new int [n][d]; a new int [n][d] n d for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		} 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]=in.nextInt();
			}
		} {
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		} for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			} int j=0; int j=0; j 0 j<d j d j++ j++ j {
				a[i][j]=in.nextInt();
			} {
				a[i][j]=in.nextInt();
			} a[i][j]=in.nextInt() a[i][j] a[i] a i j in.nextInt() in.nextInt in int ans=0; ans 0 for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		} {
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		} for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			} int j=i+1; int j=i+1; j i+1 i 1 j<n j n j++ j++ j {
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			} {
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			} double temp=0; temp 0 for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				} int k=0; int k=0; k 0 k<d k d k++ k++ k {
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				} {
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				} temp=temp+Math.pow((a[i][k]-a[j][k]),2) temp temp+Math.pow((a[i][k]-a[j][k]),2) temp Math.pow((a[i][k]-a[j][k]),2) Math.pow Math (a[i][k]-a[j][k]) a[i][k] a[i] a i k a[j][k] a[j] a j k 2 double q=(double)(int)Math.pow(temp,0.5); q (double)(int)Math.pow(temp,0.5) Math.pow Math temp 0.5 if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				} Math.pow(temp,0.5)-q<0.0000001 Math.pow(temp,0.5)-q Math.pow(temp,0.5) Math.pow Math temp 0.5 q 0.0000001 {
					ans++;
				} ans++ ans System.out.println(ans) System.out.println System.out System System.out ans String [] Args Args public class Main
{
	public static void main(String [] Args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	}
} public class Main
{
	public static void main(String [] Args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	}
} Main
import java.util.*;
import java.io.*;

public class Main
{
	public static void main(String [] Args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int d=in.nextInt();
		int [][] a=new int [n][d];
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<d;j++)
			{
				a[i][j]=in.nextInt();
			}
		}
		int ans=0;
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				double temp=0;
				for(int k=0;k<d;k++)
				{
					temp=temp+Math.pow((a[i][k]-a[j][k]),2);
				}
				double q=(double)(int)Math.pow(temp,0.5);
				if(Math.pow(temp,0.5)-q<0.0000001)
				{
					ans++;
				}
			}
		}
		System.out.println(ans);
	}
}
	