import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	}
} Main public static void main(String[] args) {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	} main {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long num = sc.nextLong(); num sc.nextLong() sc.nextLong sc long blue = sc.nextLong(); blue sc.nextLong() sc.nextLong sc long red = sc.nextLong(); red sc.nextLong() sc.nextLong sc long remainder = num%(blue+red); remainder num%(blue+red) num (blue+red) blue red long countBlue = num/(blue+red)*blue; countBlue num/(blue+red)*blue num/(blue+red) num (blue+red) blue red blue if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		} remainder >= blue remainder blue {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		} countBlue += blue countBlue blue {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		} countBlue += remainder countBlue remainder System.out.print(countBlue) System.out.print System.out System System.out countBlue sc.close() sc.close sc String[] args args public class Main {
	public static void main(String[] args) {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	}
} public class Main {
	public static void main(String[] args) {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	}
} Main
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		//入力の読み込み
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		long blue = sc.nextLong();
		long red = sc.nextLong();

		//青と赤のセットを置いた際の余りの数で判断
		long remainder = num%(blue+red);  //置いた際の余り
		long countBlue = num/(blue+red)*blue;  //上記の際の青の数

		if(remainder >= blue) {  //余りが青の数よりも多い場合
			countBlue += blue;  //全ての青の数を足す
		}
		else {                      //余りが青よりも少ない場合
			countBlue += remainder;  //余りの分だけ青を足す
		}
		System.out.print(countBlue);
		sc.close();
	}
}
