```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var n, k int
fmt.Scan(&n, &k)
grid := make([]string, n)
scanner := bufio.NewScanner(os.Stdin)
for i := 0; i < n; i++ {
scanner.Scan()
grid[i] = scanner.Text()
}
count := make([][]int, n)
for i := 0; i < n; i++ {
count[i] = make([]int, n)
}
// horizontal
for r := 0; r < n; r++ {
for s := 0; s <= n-k; s++ {
valid := true
for j := 0; j < k; j++ {
if grid[r][s+j] == '#' {
valid = false
break
}
}
if valid {
for j := 0; j < k; j++ {
count[r][s+j]++
}
}
}
}
// vertical, only if k>1
if k > 1 {
for c := 0; c < n; c++ {
for s := 0; s <= n-k; s++ {
valid := true
for j := 0; j < k; j++ {
if grid[s+j][c] == '#' {
valid = false
break
}
}
if valid {
for j := 0; j < k; j++ {
count[s+j][c]++
}
}
}
}
}
// find max
maxVal := 0
bestr := 0
bestc := 0
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
if count[i][j] > maxVal {
maxVal = count[i][j]
bestr = i
bestc = j
}
}
}
fmt.Println(bestr+1, bestc+1)
}
```