Максимум из 1000 горутин без ожидания

Что выведетJuniorпроверка — Спринт08-t006

Горутины ищут максимальное чётное число, параллельно обновляя общую best, а main сразу печатает результат. Что выведется и как это исправить с помощью sync.Mutex и sync.WaitGroup?

main.gogo
1package main2 3import "fmt"4 5func main() {6	var best int7 8	for n := 1000; n > 0; n-- {9		go func() {10			if n%2 == 0 && n > best {11				best = n12			}13		}()14	}15 16	fmt.Printf("Maximum is %d", best)17}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.