```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Buffer(make([]byte, 1024*1024), 1024*1024)
if !scanner.Scan() {
return
}
n, _ := strconv.Atoi(scanner.Text())
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
for i := 1; i <= n; i += 2 {
fmt.Fprintf(writer, "%d ", i)
}
startOdd := n - 1
if n%2 != 0 {
startOdd = n - 2
}
for i := startOdd; i >= 1; i -= 2 {
fmt.Fprintf(writer, "%d ", i)
}
for i := 2; i <= n; i += 2 {
fmt.Fprintf(writer, "%d ", i)
}
startEven := n - 1
if n%2 == 0 {
startEven = n - 2
}
for i := startEven; i >= 2; i -= 2 {
fmt.Fprintf(writer, "%d ", i)
}
fmt.Fprintf(writer, "%d\n", n)
}
```