def inp() a=gets.chomp.split(" ").map(&:to_i)end def inpf() a=gets.chomp.split(" ").map(&:to_f)end def inps() a=gets.chomp.split(" ")end def copy(a) Marshal.load(Marshal.dump(a)) end def kaizyo(n)(n < 2)? 1 : (2..n).inject(:*) end def scount(a) b=na(a.max+1);a.each{|n|b[n]+=1};return b end def na(n,d=0) Array.new(n,d)end def na2(n,m,d=0) Array.new(n){Array.new(m,d)}end def na3(n,m,l,d=0) Array.new(n){Array.new(m){Array.new(l,d)}}end def bit(n) a.to_s(2).split("").map(&:to_i) end def ok(d1,d2,d3,d4) if(@tab[[d1,d2]] != nil and @tab[[d1,d3]] != nil) if((@tab[[d1,d4]] == nil) and (@tab[[d2,d3]] == nil)and @tab[[d2,d4]] != nil and @tab[[d4,d3]]!=nil) return true end end if(@tab[[d1,d4]] != nil and @tab[[d1,d3]] != nil) if((@tab[[d1,d2]] == nil) and (@tab[[d4,d3]] == nil) and @tab[[d3,d2]] != nil and @tab[[d4,d2]]!=nil) return true end end if(@tab[[d1,d2]] != nil and @tab[[d1,d4]] != nil) if((@tab[[d1,d3]] == nil) and (@tab[[d2,d4]] == nil) and @tab[[d2,d3]] != nil and @tab[[d4,d3]]!=nil) return true end end return false end n,m=inp @tab = {} m.times do a,b = inp @tab[[a,b]] = 1 @tab[[b,a]] = 1 end c = 0 (0..(n-4)).each do |one| ((one+1)..(n-3)).each do |two| ((two+1)..(n-2)).each do |three| ((three+1)..(n-1)).each do |four| c += 1 if(ok(one,two,three,four)) end end end end puts c =begin =end