n = gets.chomp.to_i

s = 3
d = 3
w = 2
fld = false
while s < 10**5 do
    if s == n then
        flg = true
        break
    end
    s += d
    d += 1
    w += 1
end

if flg then
    puts("Yes")
    h = w + 1
    a = Array.new(h).map{Array.new(w, 0)}

    # ななめ
    num = 1
    add = w
    for j in 0..(w - 1) do
        for i in [j, j+1] do
            a[i][j] = num
        end
        num += add
        add -= 1
    end

    #右上
    for i in 0..(h - 1) do
        for j in i+1..(w - 1) do
            a[i][j] = a[i][j - 1] + 1
        end
    end

    #左上
    for j in 0..(w - 1) do
        for i in (j+2)..(h - 1) do
            a[i][j] = a[i-1][j] + 1
        end
    end

    # 結果の出力
    puts(h)
    for i in 0..(h - 1) do
        print(w.to_s + " ")
        for j in 0..(w - 1) do
            print(a[i][j].to_s + " ")
        end
        print("\n")
    end

    if false then
    for i in 0..(h - 1) do
        for j in 0..(w - 1) do
         print(a[i][j].to_s + " ")
        end
         print("\n")
    end
    end
else
    puts("No")
end
