package main
import (
"bufio"
"fmt"
"os"
"sort"
)
type Point struct {
id int
x int64
y int64
}
func main() {
reader := bufio.NewReader(os.Stdin)
var n int
if _, err := fmt.Fscan(reader, &n); err != nil {
return
}
pts := make([]Point, n)
for i := 0; i < n; i++ {
fmt.Fscan(reader, &pts[i].x, &pts[i].y)
pts[i].id = i + 1
}
sort.Slice(pts, func(i, j int) bool {
if pts[i].x != pts[j].x {
return pts[i].x < pts[j].x
}
return pts[i].y < pts[j].y
})
dx1 := pts[1].x - pts[0].x
dy1 := pts[1].y - pts[0].y
for i := 2; i < n; i++ {
dx2 := pts[i].x - pts[0].x
dy2 := pts[i].y - pts[0].y
if dx1*dy2-dy1*dx2 != 0 {
fmt.Printf("%d %d %d\n", pts[i-2].id, pts[i-1].id, pts[i].id)
return
}
}
}