package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
var p int
fmt.Fscan(in, &p)
if p == 0 {
fmt.Fprintln(out, 0, 0)
return
}
const inf = int(1e9)
dp := make([]int, p+1)
for i := 1; i <= p; i++ {
dp[i] = inf
}
for a := 2; ; a++ {
t := a * (a - 1) / 2
if t > p {
break
}
for x := t; x <= p; x++ {
if dp[x-t]+a < dp[x] {
dp[x] = dp[x-t] + a
}
}
}
n := dp[p]
u := int64(n)*(int64(n)-1)/2 - int64(p)
fmt.Fprintln(out, n, u)
}