#include<bits/stdc++.h>
using namespace std;
// có 3 đồng xu, có bao nhiêu cách chọn để tổng giá trị bằng s
// gọi f[i] là số đồng xu lớn nhất để chọn để tổng giá trị bằng i
// f[0] = 0;
// f[i] = max(f[i-a], f[i-b], f[i-c]) + 1
// f[n]
// 6 đ: 3 cách
// 5 đ: 2 cách
int main(){
vector<int> f(4005,-1);
int s, a, b, c;
cin >> s >> a >> b >> c;
f[0] = 0;
for(int i = 0; i <= s; i++){
if(i-a >= 0 && f[i-a] != -1) f[i] = max(f[i], f[i-a] + 1);
if(i-b >= 0 && f[i-b] != -1) f[i] = max(f[i], f[i-b] + 1);
if(i-c >= 0 && f[i-c] != -1) f[i] = max(f[i], f[i-c] + 1);
/*
if(f[i] != -1){
f[i+a] = max(f[i+a], f[i] + 1);
f[i+b] = max(f[i+b], f[i] + 1);
f[i+c] = max(f[i+c], f[i] + 1);
}
*/
}
cout << f[s];
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGPDsyAzIMSR4buTbmcgeHUsIGPDsyBiYW8gbmhpw6p1IGPDoWNoIGNo4buNbiDEkeG7gyB04buVbmcgZ2nDoSB0cuG7iyBi4bqxbmcgcwovLyBn4buNaSBmW2ldIGzDoCBz4buRIMSR4buTbmcgeHUgbOG7m24gbmjhuqV0IMSR4buDIGNo4buNbiDEkeG7gyB04buVbmcgZ2nDoSB0cuG7iyBi4bqxbmcgaQovLyBmWzBdID0gMDsKLy8gZltpXSA9IG1heChmW2ktYV0sIGZbaS1iXSwgZltpLWNdKSArIDEKCi8vIGZbbl0KLy8gNiDEkTogMyBjw6FjaAovLyA1IMSROiAyIGPDoWNoCgppbnQgbWFpbigpewogICAgdmVjdG9yPGludD4gZig0MDA1LC0xKTsKICAgIGludCBzLCBhLCBiLCBjOwogICAgY2luID4+IHMgPj4gYSA+PiBiID4+IGM7CiAgICBmWzBdID0gMDsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHM7IGkrKyl7CiAgICAgICAgaWYoaS1hID49IDAgJiYgZltpLWFdICE9IC0xKSBmW2ldID0gbWF4KGZbaV0sIGZbaS1hXSArIDEpOwogICAgICAgIGlmKGktYiA+PSAwICYmIGZbaS1iXSAhPSAtMSkgZltpXSA9IG1heChmW2ldLCBmW2ktYl0gKyAxKTsKICAgICAgICBpZihpLWMgPj0gMCAmJiBmW2ktY10gIT0gLTEpIGZbaV0gPSBtYXgoZltpXSwgZltpLWNdICsgMSk7CiAgICAgICAvKgogICAgICAgIGlmKGZbaV0gIT0gLTEpewogICAgICAgICAgICBmW2krYV0gPSBtYXgoZltpK2FdLCBmW2ldICsgMSk7CiAgICAgICAgICAgIGZbaStiXSA9IG1heChmW2krYl0sIGZbaV0gKyAxKTsKICAgICAgICAgICAgZltpK2NdID0gbWF4KGZbaStjXSwgZltpXSArIDEpOyAKICAgICAgICB9CiAgICAgICAqLwogICAgfQogICAgY291dCA8PCBmW3NdOwoKCgoKCgoKICAgIHJldHVybiAwOwp9CgoK