The hero of our story, Valera, and his best friend Arcady are still in school, and therefore they spend all the free time playing turn-based strategy "GAGA: Go And Go Again". The gameplay is as follows. 

There are two armies on the playing field each of which consists of n men (n is always even). The current player specifies for each of her soldiers an enemy's soldier he will shoot (a target) and then all the player's soldiers shot simultaneously. This is a game world, and so each soldier shoots perfectly, that is he absolutely always hits the specified target. If an enemy soldier is hit, he will surely die. It may happen that several soldiers had been indicated the same target. Killed soldiers do not participate in the game anymore. 

The game "GAGA" consists of three steps: first Valera makes a move, then Arcady, then Valera again and the game ends. 

You are asked to calculate the maximum total number of soldiers that may be killed during the game. 

Input

The input data consist of a single integer n (2 ≤ n ≤ 108, n is even). Please note that before the game starts there are 2n soldiers on the fields. 

Output

Print a single number — a maximum total number of soldiers that could be killed in the course of the game in three turns.

Examples

Input

2


Output

3


Input

4


Output

6

Note

The first sample test:

1) Valera's soldiers 1 and 2 shoot at Arcady's soldier 1.

2) Arcady's soldier 2 shoots at Valera's soldier 1.

3) Valera's soldier 1 shoots at Arcady's soldier 2.

There are 3 soldiers killed in total: Valera's soldier 1 and Arcady's soldiers 1 and 2.

import java.util.*;
import java.io.*;
import static java.lang.Integer.min;
import static java.lang.Long.max;
    public class Mamo {
static Reader  in=new Reader ();
static int ans[],max10[],min10[],max100[],min100[],a[],b[],k;
static boolean after,before;
static List <Integer>lis[];
    public static void main(String [] args) {
        int n = in.nextInt();
     	System.out.println(3 * (n >> 1));
//    int n=in.nextInt(),d=20000;
//    ans=new int [n];
//    Arrays.fill(ans, -1);
//    lis=new List[(d+d)/10+1];
//    for(int i=0;i<(d+d)/10;i++){lis[i]=new ArrayList();}
//    max10=new int[(d+d)/10+3];
//    min10=new int[(d+d)/10+3];
//    min100=new int[(d+d)/100+3];
//    max100=new int[(d+d)/100+3];
//    Arrays.fill(max10, -1);Arrays.fill(max100, -1);
//    Arrays.fill(min10, 100000);Arrays.fill(min100, 100000);
//    a=new int[(d+d)+1];
//    b=new int [(d+d)+1];
//    for(int i=1;i<=n;i++){
//    int x=in.nextInt();
//    a[x+d]=in.nextInt();
//    b[x+d]=i;
//    lis[(x+d)/10].add(x);
//    if(d+x>max10[(d+x)/10])max10[(d+x)/10]=d+x;
//    if(d+x>max100[(d+x)/100])max100[(d+x)/100]=d+x;
//    if(d+x<min10[(d+x)/10])min10[(d+x)/10]=d+x;
//    if(d+x<min100[(d+x)/100])min100[(d+x)/100]=d+x;
//    }
//    int m=in.nextInt();
//    for(int i=0;i<m;i++){
//    int x=in.nextInt(),y=in.nextInt();
//    int max=-1,min=-1;
//    if(lis[(d+x)/10].size()>0){
//    for(int u=0;u<(lis[(d+x)/10].size());u++){
//    if(lis[(d+x)/10].get(u)<=x){min=lis[(d+x)/10].get(u);{find(x+d,y,min+d,a[min+d],i);}
//    }
//    if(lis[(d+x)/10].get(u)>x){max=lis[(d+x)/10].get(u);{find(x+d,y,max+d,a[max+d],i);}}
//    }}
//       
//    if(max==-1&&min==-1){
//        if(max100[(x+d)/100]>x+d)
//        {find100(x,y,0,i);}
//        else after=true;
//        if(after)
//    {find1000(x,y,0,i);}
//        if(min100[(x+d)/100]<x+d)
//    {find102(x,y,0,i);}
//        else before=true;
//    if(before)
//    {find1002(x,y,0,i);}
//    }
//    else if(max==-1){
//        if(max100[(x+d)/100]>x+d)
//        {find100(x,y,0,i);}
//        else after=true;
//        if(after)
//    {find1000(x,y,0,i);}
//    }
//    else if(min==-1){
//        if(min100[(x+d)/100]<x+d)
//        {find102(x,y,0,i);}
//        else before=true;
//    if(before)
//    {find1002(x,y,0,i);}
//    }
//    }
//    StringBuilder SS=new StringBuilder();
//        System.out.println(k);
//    for(int i=0;i<n;i++)SS.append(ans[i]+" ");
//        System.out.println(SS);   
//    }
// static void find(int x,int y,int x2,int r,int i){
//     if(ans[b[x2]-1]!=-1)return;
// if((x-x2)*(x-x2)+(y*y)<=r*r){ans[b[x2]-1]=i+1;k++;}
// 
// }
// static void find100(int x,int y ,int p,int i){{     
// for(int u=((x+20000)/10+1);u<=min((x+20000)/10+10,4000);u++){if(min10[u]<100000){
//     find(x+20000,y,min10[u],a[min10[u]],i);
// after=false;return;}}}
// after=true;}
// static void find102(int x,int y ,int p,int i){
// for(int u=(int) max((x+20000)/10-1,0);u>max((x+20000)/10-10,0);u--){
//     if(max10[u]>-1){find(x+20000,y,max10[u],a[max10[u]],i);before=false;return;}}
// before=true;
// }
//  static void find1000(int x,int y ,int p,int i){ 
// for(int u=(x+20000)/100+1;u<=min((x+20000)/100+11,400);u++){if(min100[u]<100000){find(x+20000,y,min100[u],a[min100[u]],i); break;}}
// }
//    static void find1002(int x,int y ,int p,int i){
//      
//     for(int u=(int) max((x+20000)/100-1,0);u>max((x+20000)/100-11,0);u--){
//    
//     if(max100[u]>-1){
//         find(x+20000,y,max100[u],a[max100[u]],i);return;}}
 }
   static class Reader 
    { 
        private InputStream mIs;private byte[] buf = new byte[1024];private int curChar,numChars;public Reader() { this(System.in); }public Reader(InputStream is) { mIs = is;} 
        public int read() {if (numChars == -1) throw new InputMismatchException();if (curChar >= numChars) {curChar = 0;try { numChars = mIs.read(buf);} catch (IOException e) { throw new InputMismatchException();}if (numChars <= 0) return -1; }return buf[curChar++];} 
        public String nextLine(){int c = read();while (isSpaceChar(c)) c = read();StringBuilder res = new StringBuilder();do {res.appendCodePoint(c);c = read();}while (!isEndOfLine(c));return res.toString() ;} 
        public String s(){int c = read();while (isSpaceChar(c)) c = read();StringBuilder res = new StringBuilder();do {res.appendCodePoint(c);c = read();}while (!isSpaceChar(c));return res.toString();} 
        public long l(){int c = read();while (isSpaceChar(c)) c = read();int sgn = 1;if (c == '-') { sgn = -1 ; c = read() ; }long res = 0; do{ if (c < '0' || c > '9') throw new InputMismatchException();res *= 10 ; res += c - '0' ; c = read();}while(!isSpaceChar(c));return res * sgn;} 
        public int nextInt(){int c = read() ;while (isSpaceChar(c)) c = read();int sgn = 1;if (c == '-') { sgn = -1 ; c = read() ; }int res = 0;do{if (c < '0' || c > '9') throw new InputMismatchException();res *= 10 ; res += c - '0' ; c = read() ;}while(!isSpaceChar(c));return res * sgn;} 
        public double d() throws IOException {return Double.parseDouble(s()) ;}
        public boolean isSpaceChar(int c) { return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1; } 
        public boolean isEndOfLine(int c) { return c == '\n' || c == '\r' || c == -1; } 
        public int[] arr(int n){int[] ret = new int[n];for (int i = 0; i < n; i++) {ret[i] = nextInt();}return ret;}
    }
    
}
