#include using namespace std; using ll = long long; using db = double; using bl = bool; using str = string; using vi = vector; using vl = vector; using vb = vector; using vs = vector; using vvi = vector>; using vvl = vector>; using pll = pair; using pls = pair; using vpll = vector; using vpls = vector; #define rep(i, n) for (ll i = 0; i < (n); i++) #define rrep(i, n) for (ll i = 1; i <= (n); i++) #define all(v) (v).begin(), (v).end() #define rall(x) (x).rbegin(), (x).rend() #define chmax(x, y) x = max(x, y) #define chmin(x, y) x = min(x, y) #define pb push_back #define eb emplace_back #define em emplace #define pob pop_back #define YES cout << "Yes" << endl #define NO cout << "No" << endl #define dame cout << -1 << endl #define UNIQUE(v) \ sort(all(v)); \ v.erase(unique(all(v)), v.end()) #define yn(x) cout << ((x) ? "Yes" : "No") << '\n' #define fi first #define se second #define sz(x) (ll)(x).size() #define each(x, v) for (auto &x : v) #define npos str::npos #define FOUND(s, x) ((s).find(x) != npos) #define NOT_FOUND(s, x) ((s).find(x) == npos) #define RANDOM_INIT srand((unsigned)time(NULL)) // rand関数の初期化 #define popcnt(x) __builtin_popcountll(x) const ll INF = (1LL << 60); const ll NINF = -(1LL << 60); template istream &operator>>(istream &in, vector &v) { for (T &x : v) in >> x; return in; } int main() { ll n,a,b; cin >> n >> a >> b; ll cnt = 0; rrep(i,n) { if(i % a > i % b) cnt++; } cout << cnt << endl; }