func gcd(x, y int) int {
if y == 0 {
return x
}
return gcd(y, x % y)
}
func hasGroupsSizeX(deck []int) bool {
res := map[int]int{}
for _, v := range deck {
res[v]++
}
var s_value int
for _, value := range res {
if s_value != 0 {
s_value = gcd(value, s_value)
if s_value == 1 {
break
}
} else {
s_value = value
}
}
return s_value != 1
}