import java.util.*;

public class Main {
	public static void main(final String[] args) {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    }
} import java.util.*; util.* java public class Main {
	public static void main(final String[] args) {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    }
} Main public static void main(final String[] args) {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    } main {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long n = sc.nextLong(); n sc.nextLong() sc.nextLong sc long a = sc.nextLong(); a sc.nextLong() sc.nextLong sc long b = sc.nextLong(); b sc.nextLong() sc.nextLong sc long num = Math.floorDiv(n, (a + b)) * a; num Math.floorDiv(n, (a + b)) * a Math.floorDiv(n, (a + b)) Math.floorDiv Math n (a + b) a b a long rem = n % (a + b); rem n % (a + b) n (a + b) a b num += Math.min(a, rem) num Math.min(a, rem) Math.min Math a rem System.out.println(num) System.out.println System.out System System.out num final String[] args args public class Main {
	public static void main(final String[] args) {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    }
} public class Main {
	public static void main(final String[] args) {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    }
} Main
import java.util.*;

public class Main {
	public static void main(final String[] args) {

        Scanner sc = new Scanner(System.in);

        // ボールの総数
        long n = sc.nextLong();

        // 末尾に加える青いボールの数
        long a = sc.nextLong();

        // 末尾に加える赤いボールの数
        long b = sc.nextLong();

        // 青いボールの個数
        long num = Math.floorDiv(n, (a + b)) * a;

        // 青いボールの端数
        long rem = n % (a + b);

        num += Math.min(a, rem);

        // 出力
        System.out.println(num);
    }
}