Problem:
 Score : 100 points    Problem Statement There is a right triangle ABC with ∠ABC=90° .  Given the lengths of the three sides, |AB|,|BC| and |CA| , find the area of the right triangle ABC .  It is guaranteed that the area of the triangle ABC is an integer.      Constraints  1 \leq |AB|,|BC|,|CA| \leq 100  All values in input are integers.  The area of the triangle ABC is an integer.         Input Input is given from Standard Input in the following format:  |AB|  |BC|  |CA|       Output Print the area of the triangle ABC .        Sample Input 1 3 4 5      Sample Output 1 6   This triangle has an area of 6 .       Sample Input 2 5 12 13      Sample Output 2 30  This triangle has an area of 30 .       Sample Input 3 45 28 53      Sample Output 3 630  This triangle has an area of 630 .

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
import math
import collections
import sys


def I(): return int(input())
def MI(): return map(int, input().split())
def LI(): return list(map(int, input().split()))
def LI2(): return [int(input()) for i in range(n)]
def MXI(): return [[LI()]for i in range(n)]

a,b,c=MI()
ans=a*b//2
print(ans)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,_=map(int,input().split())
print(a*b//2)

Solution (Python):
c, a, b = map(int, input().split())
print(int((a*c)/2))

Solution (Python):
l = list(map(int,input().split()))
l.remove(max(l))

print(int(l[0]*l[1]/2))

Solution (Python):


MOD = 10**9
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)
    return divisors

a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b*c//max(a,b,c)//2)

Solution (Python):
a,b,c = list(map(int,input().split()))
print(a*b//2)

Solution (Python):
a,b,_=map(int,input().split())
print(a*b//2)

Solution (Python):

a,b,c = map(int,input().split())

print(int(((a*b)/2)))

Solution (Python):
ab, bc, ca = map(int, input().split())

print(ab * bc // 2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
hen = list(map(int, input().split()))

naname = max(hen)

if naname == hen[0]: print(int(hen[1]*hen[2]/2))
elif naname == hen[1]: print(int(hen[0]*hen[2]/2))
else: print(int(hen[1]*hen[0]/2))

Solution (Python):
import sys
input = lambda: sys.stdin.readline().rstrip()

A, B, C = map(int, input().split())

print(A*B//2)

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
x,y,z = map(int,input().split())
print(x*y//2)

Solution (Python):
sides = sorted(list(map(int, input().split())))
area = (sides[0] * sides[1])//(2)
print(area)

Solution (Python):
line = input()
a, b, c= [int(n) for n in line.split()]
x = a*b/2
x = int(x)
print(x)

Solution (Python):
import sys

def resolve():
  a, b, c = map(int, input().split())
  print(a * b // 2)
  return

if __name__ == "__main__":
  resolve()

Solution (Python):
import sys
IS = lambda: sys.stdin.readline().rstrip()
II = lambda: int(IS())
MII = lambda: list(map(int, IS().split()))

def main():
    x, y, z = MII()
    print(x*y//2)

if __name__ == '__main__':
    main()

Solution (Python):
a, b, c=map(int,input().split())
print(a*b//2)

Solution (Python):
X,Y,Z=map(int,input().split())
print(min(((X*Y)//2),(X*Z//2),(Y*Z//2)))

Solution (Python):
c,a,b=map(int,input().split())
print(c*a//2)

Solution (Python):
a, b, c = map(int, input().split())
s = (a+b+c)//2
print(int((s*(s-a)*(s-b)*(s-c))**0.5))

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b/2))

Solution (Python):
line = input()
v = [int(n) for n in line.split()]
c1 = min(v[0], v[1], v[2])
v.remove(c1)
c2 = min(v[0], v[1])
print(int((c1*c2)/2))

Solution (Python):
AB,BC,CUm = input().split()
AB = int(AB)
BC = int(BC)
CUm = int(CUm)

if 1 <= AB <= 100:
    if 1 <= BC <= 100:
        if 1 <= CUm <= 100:
            area = (AB * BC )/ 2
            print(int(area))

Solution (Python):
x = input()

a, b, c = [int(i) for i in x.split()]

print(int((a*b)/2))

Solution (Python):


l,m,n = map(int,input().split())
print(int(l*m/2))

Solution (Python):
line = input()
sides= [int(n) for n in line.split()]
sides.sort()
area = round(sides[0] * sides[1]/2)
print(area)

Solution (Python):
def main():
    line = input()
    mul = 1
    lista_lados = [int(x) for x in line.split()]
    index_max = lista_lados.index(max(lista_lados))
    for i in range(len(lista_lados)):
        if i != index_max:
            mul *= lista_lados[i]
    print(int(mul/2))
main()

Solution (Python):
triangulo = input()
lados = triangulo.split()
AB = lados[0]
BC = lados[1]
area = (int(AB) * int(BC))/2
print("%.0f" % area)

Solution (Python):
entrada = [int(x) for x in input().split()]
entrada.sort()
cat1 = entrada[0]
cat2 = entrada[1]
print(int(cat1*cat2/2))

Solution (Python):
linha = input()
base,altura,hipotenusa = [int(n) for n in linha.split()]
print(int((base * altura)/2))

Solution (Python):
x = input()
k=x.split(" ")

ab= int(k[0])
bc= int(k[1])
ca= int(k[2])

v = [ab,bc,ca]
v.remove(max(v))

print(int(v[0]*v[1]*0.5))

Solution (Python):
x, y, z = map(int, input().split())

print(int((x*y)/2))

Solution (Python):
a, b, c = map(int, input().split())
area = int((b * a)/2)
print(area)

Solution (Python):
inp = input()
ab, bc, ca = [int(n) for n in inp.split()]
print(int(ab*bc/2))

Solution (Python):
ab, bc, ca = map(int, input().split())

area = int((ab*bc)/2)

print(area)

Solution (Python):
a,b,c=map(int,input().split())
print((a*b)//2)

Solution (Python):
x, y, z = map(int, input().split())
print(x*y//2)

Solution (Python):
a, b, c = sorted(map(int, input().split()))
print(int(a*b/2))

Solution (Python):
a,b,c=sorted(list(map(int,input().split())))
print(int(a*b/2))

Solution (Python):
a,b,c = map(int, input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int, input().split())

print(int(a*b/2))

Solution (Python):
A=list(map(int,input().split()))
B=sorted(A)
print(B[0]*B[1]//2)

Solution (Python):
A = list(map(int,input().split()))
print(A[0]*A[1]//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a * b // 2)

Solution (Python):
length=[int(i) for i in input().split()]
length.sort()

print(length[0]*length[1]//2)

Solution (Python):
AB, BC, CA = map(int, input().split())
print((AB*BC)//2)

Solution (Python):
a,b,c = map(int, input().split())
print(a*b//2)

Solution (Python):
AB, BC, CA = map(int, input().split())
print(int((AB*BC)/2))

Solution (Python):
AB,BC,CA=map(int,input().split())

def S(AB,BC,CA):
    return AB*BC//2
    
print(S(AB,BC,CA))

Solution (Python):
tmp = input().split(" ")
print(int(int(tmp[0])*int(tmp[1])/2))

Solution (Python):
a, b, _ = map(int, input().split())
print(a*b//2)

Solution (Python):
a = list(map(int, input().split()))
 
print(int(a[0]*a[1]/2))

Solution (Python):
l=list(map(int,input().split()))
print(l[0]*l[1]//2)

Solution (Python):
AB, BC, CA = map(int,input().split())
print(AB * BC //2)

Solution (Python):
a,b,_=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):

lengths = sorted(list(map(int, input().split())))
print(lengths[0] * lengths[1] // 2)

Solution (Python):
AB,BC,CA = map(int,input().split())
print((AB*BC)//2)

Solution (Python):


import sys
import math
from bisect import bisect_right as br
from bisect import bisect_left as bl
sys.setrecursionlimit(2147483647)
from heapq import heappush, heappop,heappushpop
from collections import defaultdict
from itertools import accumulate
from collections import Counter
from collections import deque
from operator import itemgetter
from itertools import permutations
mod = 10**9 + 7
inf = float('inf')
def I(): return int(sys.stdin.readline())
def LI(): return list(map(int,sys.stdin.readline().split()))

a,b,c = LI()
print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())
print((a*b)//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())

print(int(1/2*b*a))

Solution (Python):
ab,bc,ca=map(int,input().split())
print(ab*bc//2)

Solution (Python):
a, b, c = map(int, input().split())
S = (1/2)*a*b*c/max(a,b,c)
print(int(S))

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
A,B,C = map(int,input().split())

if max(A,B,C)==A:
  print(int(B*C/2))
elif max(A,B,C)==B:
  print(int(A*C/2))
elif max(A,B,C)==C:
  print(int(A*B/2))

Solution (Python):
a, b, c = map(int, input().split())
print(a * b // 2)

Solution (Python):
ab, bc, ca = map(int, input().split())
print(ab*bc//2)

Solution (Python):
AB,BC,CA = map(int,input().split())

print((AB*BC)//2)

Solution (Python):
a, b, c = map(int, input().split())
print(int(a*b*0.5))

Solution (Python):

ab, bc, ca = [int(s) for s in input().split()]
print(ab * bc // 2)

Solution (Python):
a,b,c= input().split()
x,y,z=(int(a),int(b),int(c))
print(int(x*y/2))

Solution (Python):
from collections import deque
from collections import Counter
from itertools import product, permutations,combinations
from operator import itemgetter
from heapq import heappop, heappush
from bisect import bisect_left, bisect_right, bisect




from fractions import gcd
from math import ceil,floor, sqrt, cos, sin, pi, factorial
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
sys.setrecursionlimit(10**8)
INF = float('inf')
from datetime import datetime as dt

def main():
  a, b, c = map(int, readline().split())
  print(a*b//2)
  
  
  
if __name__ == '__main__':
  main()

Solution (Python):
x, y, _ = map(int, input().split())
print(x*y//2)

Solution (Python):
def main():
  
  
  
  a,b,c = list(map(int,input().split()))
  
  
  
  
  ans = 0
  count = 0
  lis = []
  
  print(a*b//2)

if __name__ == '__main__':
  main()

Solution (Python):
AB,BC,CA=map(int,input().split())
print(int(AB*BC/2))

Solution (Python):
tri=list(map(int,input().split()))
tri.sort()
print(int(tri[0]*tri[1]/2))

Solution (Python):
a, b, c = map(int, input().split())
s = a*b//2
print(s)

Solution (Python):
ab, bc, ca = map(int, input().split())

print(int(ab*bc/2))

Solution (Python):
x, y, z = map(int, raw_input().split())
print x*y/2

Solution (Python):
AB,BC,CA=map(int,input().split())
print((AB*BC)//2)

Solution (Python):
a = list(map(int, input().split()))
a.sort()
print(int(a[0]*a[1]/2))

Solution (Python):
ab, bc, ca = map(int, input().split())
area = ab * bc // 2
print(area)

Solution (Python):
def main():
    import sys
    input = sys.stdin.readline
    sys.setrecursionlimit(10**7)
    from collections import Counter, deque
    
    from itertools import combinations, permutations, accumulate, groupby
    
    from bisect import bisect_left,bisect_right
    import heapq
    from math import floor, ceil
    

    
    

    a,b,c = map(int, input().split())
    print(int(a*b/2))

if __name__ == '__main__':
    main()

Solution (Python):
import sys

c, a, b = map(int, sys.stdin.readline().split())

def main():
    s = c * a // 2
    print(s)

if __name__ ==  '__main__':
    main()

Solution (Python):
a, b, c = map(int, input().split())
print(a * b // 2)

Solution (Python):
from math import sqrt
ab, bc, ca = map(int, input().split())
l = [ab, bc, ca]
s = sum(l) // 2
print(int(sqrt(s * (s - ab) * (s - bc) * (s - ca))))

Solution (Python):
a, b, c = map(int, input().split())
print(a * b // 2)

Solution (Python):
a,b,c=map(int, input().split())
print(a*b//2)

Solution (Python):
def main():
    num_list = list(map(int, input().split()))

    print((num_list[0]*num_list[1])//2)
if __name__ == '__main__':
    main()

Solution (Python):
k = input().split()
a = k[0]
b = k[1]
c = k[2]
for i in range(len(k)):
    k[i] = int(k[i])
h = max(k)

Buf = 1
del k[k.index(h)]

for i in k:
    Buf = Buf * int(i)
r = Buf/2
print(int(r))

Solution (Python):
import sys
import copy
import math
import bisect
import pprint
import bisect
from functools import reduce
from copy import deepcopy
from collections import deque

if __name__ == '__main__':
    a = [int(i) for i in input().split()]
    print(a[0]*a[1]//2)

Solution (Python):
A, B, C = map(int, input().split())
lst=sorted([A,B,C])
print(lst[0]*lst[1]//2)

Solution (Python):
c,a,b = map(int,input().split())
print(c*a//2)

Solution (Python):
ab, bc, ca = map(int, input().split())
print(ab*bc//2)

Solution (Python):
a,b,c = map(int,input().split())
print(int((a*b)/2))

Solution (Python):
def ii():return int(input())
def iim():return map(int,input().split())
def iil():return list(map(int,input().split()))
ab,bc,ca = iim()
print(ab*bc//2)

Solution (Python):
AB,BC,CA = map(int,input().split())

answer = (BC * AB) /2

print(int(answer))

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
ab, bc, ca = map(int, input().split())

print(int(ab * bc / 2))

Solution (Python):
side = list(map(int, input().split()))
side.sort()
print(side[0] * side[1] // 2)

Solution (Python):
import math
c,a,b=map(int,input().split())
s=(a+b+c)/2
print(int(math.sqrt(s*(s-a)*(s-b)*(s-c))))

Solution (Python):
edge = list(map(int,input().split()))
edge.sort()
print(edge[0]*edge[1]//2)

Solution (Python):
AB, BC, CA = map(int,input().split())
print(AB*BC//2)

Solution (Python):


A, B, C = map(int, input().split())

ans = B * A // 2
print(ans)

Solution (Python):
a,b,c = map(int,input().split())

print(int(a*b/2))

Solution (Python):
a,b,c = map(int, input().split())

print(a*b//2)

Solution (Python):
import sys
INF = 10 ** 10
MOD = 10 ** 9 + 7
from functools import lru_cache
sys.setrecursionlimit(100000000)

def main():
    a,b,c = map(int,input().split())
    print(a * b //2)
if __name__ =='__main__':
    main()

Solution (Python):
import sys
from bisect import *
from heapq import *
from collections import *
from itertools import *
from functools import *
from math import *
from fractions import *

sys.setrecursionlimit(100000000)
input = lambda: sys.stdin.readline().rstrip()

def main():
    x, y, z = map(int, input().split())
    print(x * y // 2)


main()

Solution (Python):
import math
AB,BC,CA = map(int, input().split())
s = (AB+BC+CA)/2
S = math.sqrt(s*(s-AB)*(s-BC)*(s-CA))
print(int(S))

Solution (Python):
AB,BC,CA = map(int,input().split())
print(int(AB*BC/2))

Solution (Python):
AB,BC,CA=map(int,input().split())
print(AB*BC//2)

Solution (Python):
a,b,c= map(int,input().split())
print(int(a*b/2))

Solution (Python):
A,B,C = map(int,input().split())

maxL = max(A,B,C)
minL = min(A,B,C)
midium = A+B+C - maxL - minL

print(int(minL*midium/2))

Solution (Python):
A,B,C=map(int,input().split());print(A*B//2)

Solution (Python):
AB, BC, CA = map(int, input().split())
print(int(AB*BC/2))

Solution (Python):
a = sorted(list(map(int,input().split())))
print ((a[0]*a[1])//2)

Solution (Python):
a,b,dummy = map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
ab, bc, ac = map(int,input().split(" "))
print((ab*bc)//2)

Solution (Python):
a, b, c = map(int, input().split(' '))
print(int(a*b/2))

Solution (Python):
a,b,c = map(int, input().split())
if a > b and a > c:print(b * c // 2)
if b > c and b > a:print(c * a // 2)
if c > a and c > b:print(a * b // 2)

Solution (Python):
A, B, C = map(int, input().split())
print((A * B) // 2)

Solution (Python):
ls = list(map(int,input().split()))
ls.sort()
print(int(ls[0]*ls[1]*0.5))

Solution (Python):
ab,bc,ca=map(int,input().split())

print(int(bc*ab/2))

Solution (Python):
list = [int(i) for i in input().split()]
list.sort()

print(list[0]*list[1]//2)

Solution (Python):
def main():
    x, y, z = map(int, input().split())
    print(x*y//2)
    

main()

Solution (Python):
ab,bc,_ = map(int, input().split(" "))
print(ab*bc//2)

Solution (Python):
c, a, b = map(int, input().split())
print(int(min(a, b, c) * (a + b + c - min(a, b, c) - max(a, b, c)) / 2))

Solution (Python):
ab, bc, ca = map(int, input().split())
print(int(ab * bc / 2))

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b*0.5))

Solution (Python):
ab,bc,ca = map(int, input().split())
s = ab*bc*0.5
print(int(s))

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int,(input().split()))
print(a*b//2)

Solution (Python):
えーびー,びーしー,_ = map(int,input().split())
めんせき =えーびー*びーしー//2
print(めんせき)

Solution (Python):
a,b,c=map(int,input().split())

print((a*b)//2)

Solution (Python):
A,B,C = map(int,input().split())
print(A*B//2)

Solution (Python):
a,b,c = map(int, input().split())
print(int(a * b * c / max(a,b,c) / 2))

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
A, B, C = map(int, input().split())
print(A*B//2)

Solution (Python):
ab,bc,ca=map(int,input().split())
print(int(ab*bc/2))

Solution (Python):
AB,BC,CA=map(int,input().split())

ab=pow(AB,2)
bc=pow(BC,2)
ca=pow(CA,2)

if ab+bc==ca:
    print(int(AB*BC/2))
elif bc+ca==ab:
    print(int(BC*CA/2))
else:
    print(int(AB*CA/2))

Solution (Python):
a, b, c = map(int, input().split())

print(int(a * b / 2))

Solution (Python):

a, b, c = map(int, input().split())

print(int(a * b * c / max(a, b, c) / 2))

Solution (Python):
nums = list(map(int, input().split()))
nums.sort()
print(int((nums[0] * nums[1])/2))

Solution (Python):
ab, bc, ca = map(int, input().split())

print(int(ab * bc * 0.5))

Solution (Python):
def main():
    ab, bc, ca = map(int, input().split())
    ans = ab * bc // 2
    print(ans)


if __name__ == "__main__":
    main()

Solution (Python):

x,y,z=map(int,input().split())
print(int(x*y/2))

Solution (Python):
ab, bc, ca = list(map(int,input().split()))
print(int(bc * ab /2))

Solution (Python):
a, b, c =map(int,input().split())
if a**2+b**2 ==c**2:
  print(a*b//2)
elif b**2 + c**2 ==a**2:
  print(b*c//2)
else:
  print(c*a//2)

Solution (Python):
import sys
import os


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")

    A, B, C = list(map(int, sys.stdin.readline().split()))
    print(A*B//2)


if __name__ == '__main__':
    main()

Solution (Python):
def solve():
    AB, BC, _ = map(int, input().split())
    print(BC * AB // 2)
    
if __name__ == '__main__':
    solve()

Solution (Python):
A,B,C = map(int,input().split())
print(A*B//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())
print(int(a*b/2))

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int, input().split())
print(int(a * b / 2))

Solution (Python):

a,b,c=list(map(int,input().split()))
print((a*b)//2)

Solution (Python):
c, a, b = map(int, input().split())
print(c * a // 2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a * b // 2)

Solution (Python):
a,b,c= map(int, input().split())
print((a*b)//2)

Solution (Python):
import heapq
def mium():
  hen = list(map(int, input().split()))
  hens = heapq.nsmallest(2, hen)
  print(int(hens[0]*hens[1]/2))
if __name__ == "__main__":
  mium()

Solution (Python):
a,b,c = sorted(map(int, input().split()))
print(int(a*b/2))

Solution (Python):
[A,B,C] = list(map(int,input().split()))
print(int(0.5*A*B))

Solution (Python):
a,b,c = map(int,input().split())
print(int(a*b/2))

Solution (Python):
a, b, c = map(int, input().split())

print(int(a*b/2))

Solution (Python):

a,b,c = map(int,input().split())

area = int(a*b*0.5)
print(area)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c = list(map(int, input().split()))
print((a * b) // 2)

Solution (Python):
ab,bc,ca = map(int,input().split())
print(ab*bc//2)

Solution (Python):
a, b, c = map(int, input().split())
print(a * b // 2)

Solution (Python):
ab,bc,ca=map(int,input().split())
print(int(ab*bc/2))

Solution (Python):
a,b,c=map(int,input().split())
print((a*b)//2)

Solution (Python):
A,B,_=map(int,input().split(' '))
print(A*B//2)

Solution (Python):
a = [int(x) for x in input().split()]
a.sort()

print(a[0]*a[1]//2)

Solution (Python):


AB, BC, CA = map(int, input().split())

print(AB*BC//2)

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b/2))

Solution (Python):
A, B, C = map(int, input().split())
print(A * B // 2)

Solution (Python):
from collections import Counter,defaultdict,deque
from heapq import heappop,heappush,heapify
import sys,bisect,math,itertools,fractions,pprint
sys.setrecursionlimit(10**8)
mod = 10**9+7
INF = float('inf')
def inp(): return int(sys.stdin.readline())
def inpl(): return list(map(int, sys.stdin.readline().split()))
def inpln(n): return list(int(sys.stdin.readline()) for i in range(n))

a,b,c = inpl()
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())
ans = a * b // 2
print(ans)

Solution (Python):





def main():
    l = list(map(int, input().split()))
    l.sort()
    print((l[0]*l[1])//2)
    return 

if __name__ == '__main__':
    main()

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
L = sorted(list(map(int,input().split())))
print((L[0]*L[1])//2)

Solution (Python):


(ab,bc,ca) = sorted(map(int, input().rstrip().split()))

print(int(ab*bc/2))

Solution (Python):
L=list(map(int,input().split()))
print(L[0]*L[1]//2)

Solution (Python):
a,b,c = map(int,input().split())
menseki = (a * b) // 2
print(menseki)

Solution (Python):
l=list(map(int,input().split()))
ans=l[0]*l[1]//2
print(ans)

Solution (Python):
a, b, c = map(int, input().split())
print((a * b) // 2)

Solution (Python):
a,b,c=map(int,input().split())
print((a*b)//2)

Solution (Python):
l = list(map(int, input().split()))
l.sort()
print(int(l[0]*l[1]/2))

Solution (Python):
a,b,c = map(int,input().split())
menseki = (a * b) // 2
print(menseki)

Solution (Python):
a, b, c = map(int, input().split())
print(a * b // 2)

Solution (Python):

ab, bc, ca = map(int,input().split()) 

ans = ab * bc * ca // max(ab, bc, ca)
print(ans // 2)

Solution (Python):
def main():
    a, b, c = (int(i) for i in input().split())
    from math import sqrt
    s = (a + b + c) / 2
    print(int(sqrt(s*(s-a)*(s-b)*(s-c))))


if __name__ == '__main__':
    main()

Solution (Python):
e = list(map(int, input().split()))
e.sort()
print(e[0]*e[1]//2)

Solution (Python):
ab, bc ,_ = map(int,input().split())
print(ab * bc // 2)

Solution (Python):
a, b, c = map(int, input().split())
print(b*a//2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
from sys import stdin
def main():
	readline=stdin.readline
	c,a,b=map(int,readline().split())
	print(c*a//2)
if __name__=="__main__":
	main()

Solution (Python):
X,Y,Z = map(int,input().split())

print(X*Y//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a * b // 2)

Solution (Python):
a, b, c = map(int, input().split())
print(a * b // 2)

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b/2))

Solution (Python):
L=list(map(int,input().split()))
print(L[0]*L[1]//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
x, y, _ = map(int, input().split())
print(x*y//2)

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
n = sorted(map(int, input().split()))
print(round((n[0] * n[1]) / 2))

Solution (Python):
A=list(map(int,input().split()))
A.sort()
print(A[0]*A[1]//2)

Solution (Python):
import sys
import os


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")

    ab, bc, ca = map(int, sys.stdin.readline().split())

    print(int(ab*bc/2))


if __name__ == '__main__':
    main()

Solution (Python):
l = list(map(int,input().split()))

print(int(l[0]*l[1]/2))

Solution (Python):
a, b, c = [int(i) for i in input().split()]

print(int(a*b*0.5))

Solution (Python):
a, b, c = map(int, input().split())

print(int(a * (b/2)))

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
a,b,c =map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c= map(int, input().split())

if a>=b and a>=c:
    print(b*c//2)

elif b>=a and b>=c:
    print(a*b//2)

else:
    print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())
print(int(a*b*(1/2)))

Solution (Python):
ab,bc,ca=map(int,input().split())
print(int(ab*bc/2))

Solution (Python):
a,b,c = [int(i) for i in input().split()]
print(a*b//2)

Solution (Python):
a,b,c = list(map(int, input().split()))
m = max(a,b,c)

if m ==a:
  ans = b*c/2
elif m ==b:
  ans = a*c/2
elif m ==c:
  ans = a*b/2

print(int(ans))

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
ab,bc,ca = map(int,input().split())
print(int(ab*bc*(0.5)))

Solution (Python):
a,b,c = map(int,input().split())
print((a*b)//2)

Solution (Python):
t = list(map(int,input().split()))

t.sort()

print(t[0]*t[1]//2)

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())

print(a * b // 2)

Solution (Python):
e = sorted(map(int, input().split()))
print(e[0]*e[1]//2)

Solution (Python):
a,b,c=map(int,input().split())
print((a*b)//2)

Solution (Python):

a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
d=min(a*b/2,a*c/2,b*c/2)
print(int(d))

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())
print(int((a * b) / 2))

Solution (Python):
A = sorted(list(map(int, input().split())))
print(A[0]*A[1]//2)

Solution (Python):
c,a,b = map(int,input().split())
print(int(a*c/2))

Solution (Python):
a,b,c= map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = map(int, input().split())
print((a*b*c)//(max(a,b,c)*2))

Solution (Python):
AB,BC,CA = map(int, input().split())
print(int(AB*BC/2))

Solution (Python):
a = list(map(int,input().split()))
a.sort()
print(a[0]*a[1]//2)

Solution (Python):
a,b,c = sorted(map(int,input().split()))
print(int(a*b/2))

Solution (Python):

X,Y,Z=map(int,input().split())
print(X*Y//2)

Solution (Python):



AB,BC,CA = list(map(int, input().rstrip().split()))

print( "{}".format(int((AB*BC)/2)) )

Solution (Python):
c, a, b = map(int, input().split())
print(a*c // 2)

Solution (Python):
a, b, c = map(int, input().split())
print((a * b)//2)

Solution (Python):
a, b, _ = map(int, input().split())
print(a * b // 2)

Solution (Python):
A,B,C=map(int,input().split())
print(A*B//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
s=list(map(int,input().split()))
s.remove(max(s))
print(int(s[0]*s[1]/2))

Solution (Python):
a, b, c = [int(x) for x in input().split()]
print(a * b // 2)

Solution (Python):
a, b, c = map(int,input().split())

s = a*b//2

print(s)

Solution (Python):
a,b,c = map(int, input().split())

print(a*b//2)

Solution (Python):
AB, BC, CA = map(int, input().split())

print(int(AB * BC / 2))

Solution (Python):
a, b, c = map(int, input().split())
print((a*b)//2)

Solution (Python):
a = list(map(int, input().split()))
M = max(a)
a.remove(M)
ans = 1 / 2
for aa in a:
    ans *= aa
print(int(ans))

Solution (Python):
l=list(map(int,input().split()))
l.sort()
print(l[0]*l[1]//2)

Solution (Python):
a, b, c = map(int, input().split())
print(int(a*b*0.5))

Solution (Python):
a,b,c=map(int, input().split())
print(int(a*b/2))

Solution (Python):
c,a,b = map(int,input().split())
print(a*c//2)

Solution (Python):
a,b,c=sorted(map(int,input().split()))
print(a*b//2)

Solution (Python):
a,b,c=sorted(list(map(int,input().split())))
print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
ans=a*b//2
print(ans)

Solution (Python):
AB, BC, CA = map(int, input().split())

print(BC * AB // 2)

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
a,b,c = map(int,input().split())
if a**2+b**2==c**2:
    ans = a*b//2
elif a**2+c**2==b**2:
    ans = a*c//2
else:
    ans = b*c//2
print(ans)

Solution (Python):
a,b,c = map(int,input().split())
print((a*b)//2)

Solution (Python):
A = list(map(int,input().split()))
print(A[0]*A[1]//2)

Solution (Python):
a, b, c = map(int, raw_input().split())
if a > b and a > c:
    print b * c / 2
elif b > a and b > c:
    print a * c / 2
elif c > a and c > b:
    print a * b / 2

Solution (Python):
a = sorted(list(map(int,input().split())))
print(int(a[0]*a[1]*0.5))

Solution (Python):
arr = list(map(int,input().split()))
print(int(arr[0]*arr[1]*0.5))

Solution (Python):
c,a,b = map(int, input().split())
print(int(a*c/2))

Solution (Python):
a,b,c = [int(x) for x in input().split()]

print((a * b) // 2)

Solution (Python):
hen = list(map(int, input().split()))
hen.sort()
print(hen[0]*hen[1]//2)

Solution (Python):
A, B, C = map(int, input().split())
print(A*B//2)

Solution (Python):
A, B, C = map(int, input().split())
print(int((A*B)/2))

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b/2))

Solution (Python):
l = list(map(int,input().split()))

l.sort()

print(l[0]*l[1]//2)

Solution (Python):
a, b, c = map(int, input().split())
print(a*b//2)

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b/2))

Solution (Python):
a = sorted(list(map(int,input().split())))
print(a[0]*a[1]//2)

Solution (Python):
import sys
def input(): return sys.stdin.readline().rstrip()

def main():
    AB, BC, CA = map(int, input().split())
    print(AB * BC // 2)
    
if __name__ == '__main__':
    main()

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
import sys
 
stdin = sys.stdin
 
ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
nan = lambda x: [na() for _ in range(x)]
ns = lambda: stdin.readline().rstrip()
nas = lambda: stdin.readline().split()

a, b, c = na()

print(a * b // 2)

Solution (Python):
a,b,c = map(int,input().split())
print(int(min(a*b,b*c,c*a)/2))

Solution (Python):
ab, bc, ca = map(int, input().split())
print(int(ab * bc / 2))

Solution (Python):
a, b, c = map(int, input().split())
print((a * b) // 2)

Solution (Python):
c, a, b = map(int, input().split())
print(c*a//2)

Solution (Python):
a=list(map(int,input().split()));print(a[0]*a[1]//2)

Solution (Python):
A,B,C=map(int,input().split())
print(int(B*A/2))

Solution (Python):




def main():
    ABC = list(map(int, input().split()))
    ABC.sort()
    print(int(int(ABC[0]) * int(ABC[1]) / 2))


if __name__ == "__main__":
    main()

Solution (Python):
AB, BC, CA = map(int, input().split())

print(int((BC*AB)/2))

Solution (Python):
a, b, c = map(int, input().split())
print(int(a * b / 2))

Solution (Python):
a,b,c=map(int,input().split())
print(a*b//2)

Solution (Python):
a, b, c = list(map(int, input().split()))
print(int(a*b/2))

Solution (Python):
c,a,b=map(int,input().split())
print(int(c*a/2))

Solution (Python):
a, b, c = map(int, input().split())

r = a*b
if r%2 == 0:
    print(r//2)
else:
    print(r/2)

Solution (Python):
AB, BC, CA = map(int,input().split())
print(int(AB * BC / 2))

Solution (Python):
a, b, c = map(int, input().split())

print(a * b * c // max(a,b,c) // 2)

Solution (Python):
a,b,c=map(int,input().split())
print(int(a*b/2))

Solution (Python):
a,b,c = map(int,input().split())
print(a*b//2)

Solution (Python):
c,a,b = map(int, input().split())
print(c*a//2)

Solution (Python):
A, B, C = map(int,raw_input().split())
area = (A*B)/2
print area

Solution (Python):
ab, bc, ca = map(int,input().split())
print(ab*bc//2)