# your code goes here
"""
from collections import defaultdict
n = int(input())
arr = list(map(int, input().split()))
def findMaxPoints(maxNum, numFreqMap, currNum, dpArr):
if currNum <= 0:
return 0
if dpArr[currNum] != -1:
return dpArr[currNum]
dpArr[currNum] = max(
(numFreqMap.get(currNum, 0) * currNum) + findMaxPoints(maxNum, numFreqMap, currNum - 2, dpArr),
findMaxPoints(maxNum, numFreqMap, currNum - 1, dpArr)
)
return dpArr[currNum]
numFreqMap = defaultdict(int)
maxNum = 0
for i in arr:
numFreqMap[i] += 1
maxNum = max(maxNum, i)
dpArr = [-1] * (maxNum + 1)
print(findMaxPoints(maxNum, numFreqMap, maxNum, dpArr))
"""
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCiIiIgpmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdApuID0gaW50KGlucHV0KCkpCmFyciA9IGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKIApkZWYgZmluZE1heFBvaW50cyhtYXhOdW0sIG51bUZyZXFNYXAsIGN1cnJOdW0sIGRwQXJyKToKICAgIGlmIGN1cnJOdW0gPD0gMDoKICAgICAgICByZXR1cm4gMAogICAgaWYgZHBBcnJbY3Vyck51bV0gIT0gLTE6CiAgICAgICAgcmV0dXJuIGRwQXJyW2N1cnJOdW1dCiAgICBkcEFycltjdXJyTnVtXSA9IG1heCgKICAgICAgICAobnVtRnJlcU1hcC5nZXQoY3Vyck51bSwgMCkgKiBjdXJyTnVtKSArIGZpbmRNYXhQb2ludHMobWF4TnVtLCBudW1GcmVxTWFwLCBjdXJyTnVtIC0gMiwgZHBBcnIpLAogICAgICAgIGZpbmRNYXhQb2ludHMobWF4TnVtLCBudW1GcmVxTWFwLCBjdXJyTnVtIC0gMSwgZHBBcnIpCiAgICApCiAgICByZXR1cm4gZHBBcnJbY3Vyck51bV0KIApudW1GcmVxTWFwID0gZGVmYXVsdGRpY3QoaW50KQptYXhOdW0gPSAwCmZvciBpIGluIGFycjoKICAgIG51bUZyZXFNYXBbaV0gKz0gMQogICAgbWF4TnVtID0gbWF4KG1heE51bSwgaSkKZHBBcnIgPSBbLTFdICogKG1heE51bSArIDEpCnByaW50KGZpbmRNYXhQb2ludHMobWF4TnVtLCBudW1GcmVxTWFwLCBtYXhOdW0sIGRwQXJyKSkKIiIi