[<AutoOpen>]
module Program

open System

let read f = stdin.ReadLine() |> f
let reada f = stdin.ReadLine().Split() |> Array.map f
let reads f = stdin.ReadLine().Split() |> Array.toList |> List.map f

let inline gcd x y =
    let zero = LanguagePrimitives.GenericZero
    let rec loop x y = if y = zero then x else loop y (x % y)
    loop (abs x) (abs y)

[<EntryPoint>]
let main _ =
    let N = read int
    let xys = List.init N (fun _ -> reads int |> fun [x;y] -> (x,y))

    let mutable line = 0
    for x1, y1 as b1 in xys do
        for x2, y2 as b2 in xys do
            if b1 <> b2 then
                if x1 = x2 then
                    List.filter (fun (x3, _) -> x3 = x1) xys
                    |> List.length
                elif y1 = y2 then
                    List.filter (fun (_, y3) -> y3 = y1) xys
                    |> List.length
                else
                    let vx, vy = x2 - x1, y2 - y1
                    let g = gcd vx vy
                    let vx, vy = vx / g, vy / g
                    List.filter (fun (x3, y3) ->
                        let k = (x3 - x1) / vx
                        ((x3 - x1) % vx = 0) && (y3 = y1 + k * vy)
                    ) xys
                    |> List.length
                |> fun ln -> line <- max line ln

    if N = line then
        printfn "1"
    else
        printfn "%i" (N - line)
    0