```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
r := bufio.NewReader(os.Stdin)
var n int
fmt.Fscan(r, &n)
freq := make(map[int]int)
firstPos := make(map[int]int)
lastPos := make(map[int]int)
for i := 0; i < n; i++ {
var x int
fmt.Fscan(r, &x)
freq[x]++
if _, exists := firstPos[x]; !exists {
firstPos[x] = i
}
lastPos[x] = i
}
maxFreq := 0
for _, f := range freq {
if f > maxFreq {
maxFreq = f
}
}
minLen := n + 1
bestL, bestR := 0, 0
for num, f := range freq {
if f == maxFreq {
length := lastPos[num] - firstPos[num] + 1
if length < minLen {
minLen = length
bestL = firstPos[num]
bestR = lastPos[num]
}
}
}
fmt.Println(bestL+1, bestR+1)
}
```