Проверка дали може да бъде получена дадена сума - задача номер 9

    Дадени са n монети със стойности съответно: S1, S2, ..., Sn лева. Напишете програма A.EXE ( B.EXE ,C.EXE, за различните методи на решаване), която да провери дали може да бъде получена дадена сума S. Стойностите на монетите са цели положителни числа, не непременно различни.  
    Входните данни програмата чете от текстов файл file.inp . Първия ред на входния файл съдържа сумата S и броя на монетите N, а следващия ред съдържа последователност от естествени числа, съответстващи на стойностите на монетите.
    Изходът на програмата е в текстов файл file.out . Файлът съдържа една от двете стойности: " Yes " - ако сумата може да бъде получена и " No " - ако сумата не може да бъде получена.

Пример:

       Вход:                       Изход:
                                  
       15  7                              Yes
                                                                          
       3 8 2 4 1 9 2
 
       Вход:                        Изход:  
             
       155   6                            No

       15 12 4 21 81 7
         
         
       Вход:                        Изход:
      
        0   5                              Yes
         
       34 43 2 15 9