# import sys; input = sys.stdin.buffer.readline # sys.setrecursionlimit(10**7) from collections import defaultdict con = 998244353; INF = float("inf") def getlist(): return list(map(int, input().split())) #二分探索基本形 L:リスト x:値 n:リスト長 def Binary_Search(N): #初期化 left = 0 right = 2 * (10 ** 18) #二分探索 while left <= right: mid = (left + right) // 2 val = (mid + 1) * mid // 2 if val == N: return mid elif val > N: right = mid - 1 else: left = mid + 1 return INF #処理内容 def main(): N = int(input()) ans = Binary_Search(N) if ans == INF: print("NO") else: print("YES") print(ans) if __name__ == '__main__': main()