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):
import sys

"""テンプレ"""


input = sys.stdin.readline


def intline():
    return list(map(int, input().split()))



def strline():
    return list(map(str, input().split()))



def intlines(n):
    return [int(input() for _ in range(n))]



def lines(n):
    return [input() for _ in range(n)]
    


class UnionFind:
    def __init__(self, n):
        self.par = [i for i in range(n+1)]
        self.rank = [0] * (n+1)

    
    def find(self, x):
        if self.par[x] == x:
            return x
        else:
            self.par[x] = self.find(self.par[x])
            return self.par[x]

    
    def union(self, x, y):
        x = self.find(x)
        y = self.find(y)
        if self.rank[x] < self.rank[y]:
            self.par[x] = y
        else:
            self.par[y] = x
            if self.rank[x] == self.rank[y]:
                self.rank[x] += 1

    
    def same_check(self, x, y):
        return self.find(x) == self.find(y)



class WeightedUnionFind:
    def __init__(self, n):
        self.par = [i for i in range(n+1)]
        self.rank = [0] * (n+1)
        
        self.weight = [0] * (n+1)

    
    def find(self, x):
        if self.par[x] == x:
            return x
        else:
            y = self.find(self.par[x])
            
            self.weight[x] += self.weight[self.par[x]]
            self.par[x] = y
            return y

    
    def union(self, x, y, w):
        rx = self.find(x)
        ry = self.find(y)
        
        if self.rank[rx] < self.rank[ry]:
            self.par[rx] = ry
            self.weight[rx] = w - self.weight[x] + self.weight[y]
        
        else:
            self.par[ry] = rx
            self.weight[ry] = -w - self.weight[y] + self.weight[x]
            
            if self.rank[rx] == self.rank[ry]:
                self.rank[rx] += 1

    
    def same(self, x, y):
        return self.find(x) == self.find(y)

    
    def diff(self, x, y):
        return self.weight[x] - self.weight[y]




"""ここからメインコード"""


a, b, _ = intline()
print(a * b // 2)

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

Solution (Python):
import sys

"""テンプレ"""


input = sys.stdin.readline


def intline():
    return list(map(int, input().split()))



def strline():
    return list(map(str, input().split()))



def intlines(n):
    return [int(input() for _ in range(n))]



def lines(n):
    return [input() for _ in range(n)]
    

"""ここからメインコード"""

a, b, _ = intline()
print(a * b // 2)

Solution (Python):
l =[int(i) for i in input().split()]
print(l[0]*l[1]//2)

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

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

Solution (Python):
length = list(map(int,input().split()))
print(int(min(length)*(sum(length)-max(length)-min(length))*0.5))

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

Solution (Python):
def run(a):
    return a[0] * a[1] // 2


def main():
    a = list(map(int, input().split()))
    print(run(a))


if __name__ == '__main__':
    main()

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

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


d=sorted(c_2)
print(int(d[0]*d[1]/2))

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

Solution (Python):
a=input()
x=[ int(y) for y in a.split() ]
print(x[0]*x[1]//2)

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

Solution (Python):

a,b,c = sorted(map(int, input().split(' ')), reverse=True)

h = a * b * c / (b**2 + c**2)

print(int(round(a * h / 2)))

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

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

Solution (Python):
AB, BC, CD = map(int, input().split())
print (round(AB * BC / 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,_=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 = input().strip().split()
print(int(int(a)*int(b)*0.5))

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 sys

def parse(inp):
    ab,bc,ca=map(int,next(inp).split())
    return ab,bc
  
def main(inp):
        ab=inp[0]
        bc=inp[1]
        return int(ab*bc/2)
      
print(main(parse(sys.stdin)))

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

Solution (Python):
print (lambda x:(x[0]*x[1])/2)(map(int,raw_input().split(" ")))

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

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

Solution (Python):
x,y,z=[int(i) for i in input().split()]
print(int(x*y/2))

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

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=list(map(int,input().split()))
print(a*b//2)

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

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

v_max = max(a)
a.remove(v_max)

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

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

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

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



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

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

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

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

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

    ans = AB * BC // 2
    print(ans)


if __name__ == '__main__':
    main()

Solution (Python):






def main():
    A, B, C = [int(i) for i in raw_input().strip().split(' ')]
    print A*B/2


if __name__ == '__main__':
    main()

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

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

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

Solution (Python):
A,B,C = 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):
p = input().split()
k = []
for i in p:
  k.append(int(i))
k.sort()
print(int(k[0]*k[1]/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):
import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,copy,functools

sys.setrecursionlimit(10**7)
inf = 10**20
eps = 1.0 / 10**10
mod = 10**9+7
dd = [(-1,0),(0,1),(1,0),(0,-1)]
ddn = [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def S(): return input()
def pf(s): return print(s, flush=True)


def main():
    a = sorted(LI())

    return a[0] * a[1] // 2



print(main())

Solution (Python):
class RightTriangle:
	def __init__(self,ab,bc,ca):
		self.ab = ab
		self.bc = bc
		self.ca = ca
	def calc_area(self):
		return self.ab*self.bc/2

ab,bc,ca = map(int,raw_input().strip().split())
val = RightTriangle(ab,bc,ca)
print(val.calc_area())

Solution (Python):
import sys

wk_line =input().split()
print(int((int(wk_line[0])*int(wk_line[1])/2)))

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

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

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

Solution (Python):
a, b, c = [int(i) for i in input().split()]
print(int(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(int(a[0]*a[1]/2))

Solution (Python):
[print(int(_[0]/2)) for _ in [[functools.reduce([operator.mul for operator in [__import__('operator')]][0], [int(i) for i in input().split()][:2]) for functools in [__import__('functools')]]]]

Solution (Python):
n, h, m = map(int, input().split(' '))

print(int(n*h/2))

Solution (Python):
u,n,k  = [int(i) for i in input().split()]

print(int(u * n * 0.5))

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

if __name__ == "__main__":
    solve()

Solution (Python):
import math

def heron(A,B,C):
    s = (A+B+C)/2
    res = math.sqrt(s*(s-A)*(s-B)*(s-C))
    return res
A,B,C = map(int,input().split())
Res = heron(A,B,C)
print(int(Res))

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

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

Solution (Python):
abc=[int(i) for i in input().split()]
print(int((abc[0]*abc[1])/2))

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

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

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

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

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

Solution (Python):
N,M,L = map(int, input().split())
print(int(N*M/2))

Solution (Python):
s=list(map(int,input().split()));s.sort();print(s[0]*s[1]//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,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):
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 = list(map(int, input().split()))
print(int(a * b / 2))

Solution (Python):



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


if __name__ == '__main__':
    main()

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

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

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

Solution (Python):
[print(a*b//2)for a,b,_ in[list(map(int,input().split()))]]

Solution (Python):
[print(a*b//2)for a,b,_ in[list(map(int,input().split()))]]

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

Solution (Python):
[print(n.prod([int(i)for i in input().split()][:2])//2)for n in[__import__("numpy")]]

Solution (Python):
[print(a*b//2) for a,b,_ in [sorted(map(int, input().split()))]]

Solution (Python):
[print(n.prod(sorted([int(i) for i in input().split()])[:2])//2)for n in[__import__("numpy")]]

Solution (Python):
[print(f.reduce(o.mul,sorted([int(i) for i in input().split()])[:2])//2)for f,o in[[__import__("functools"),__import__("operator")]]]

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

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

Solution (Python):

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

print(a*b//2)

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

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

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

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

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

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

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

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

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

print(a*b//2)

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

a = sorted(a)

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

Solution (Python):

a,b,c = list(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(int(x*y/2))

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

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

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

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

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


if __name__ == "__main__":
    main()

Solution (Python):
a,b,c=sorted(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 = (int(i) for i in input().split())
print(A*B//2)

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

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

Solution (Python):
a,b,c=sorted(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):
a,b,c = map(int, input().split())

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

Solution (Python):
a,b,c = map(int, input().split())
list=[]
list.append(a)
list.append(b)
list.append(c)
list.sort()

x = list[0]*list[1]/2
print(int(x))

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

Solution (Python):
def main():
	l = [int(x) for x in input().split()]
	print(int(l[0] * l[1] * .5))


if __name__ == '__main__':
	main()

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

Solution (Python):

length = list(map(int, input().split()))
length.sort()
area = length[0] * length[1] / 2
print(int(area))

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

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

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

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

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

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

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

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

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):

import sys

def io_generator():
	while True:
		yield raw_input()



def main(io):
	a, b,c= map(int, io.next().split())
	return str((a*b*c)/(2*max(a,b,c)))




if __name__ == "__main__":
	io=io_generator()
	print main(io)

Solution (Python):



if __name__ == '__main__':
    
    b, c, d = map(int, input().split())
    
    print(int(b * c / 2.0))

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

Solution (Python):
if __name__ == '__main__':
    s = input()
    a, b, c = map(int, s.split())
    maxvalue = max([a, b, c])

    r = 1
    for i in [a, b, c]:
        if i != maxvalue:
            r *= i
    print(r // 2)

Solution (Python):



import array
from bisect import *
from collections import *
import fractions
import heapq 
from itertools import *
import math
import random
import re
import string
import sys

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

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

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

s = a[0] * a[1] / 2

print(int(s))

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

Solution (Python):
p,q,r=map(int,input().split())
print(int(p*q/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())
if max(a, b, c) == a:
    print(int(b*c/2))
elif max(a, b, c) == b:
    print(int(c*a/2))
elif max(a, b, c) == c:
    print(int(a*b/2))

Solution (Python):
a=list(map(int,input().split()))
print((min(a)*(sum(a)-min(a)-max(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((A*B)/2))

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

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

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

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

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

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

main()

Solution (Python):
s = input().split()

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

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

print(ans)

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

abc.sort()

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

Solution (Python):

AB,BC,_ =map(int, input().split())
ans = AB * BC // 2

print(ans)

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 * c // 2)
else:
	print(a * b // 2)

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

Solution (Python):

import sys

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

print((AB * BC) // 2)

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

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):
length = sorted(map(int, raw_input().split()))
print length[0]*length[1]/2

Solution (Python):

len = list(map(int,input().split()))

def return_min(x,y):
  if x > y:
    return y
  else:
    return x

min = len[0]
min_index = 0
if min > len[1]:
  min = len[1]
  min_index = 1
if min > len[2]:
  min = len[2]
  min_index = 2
  
if min_index == 0:
  res = min * return_min(len[1],len[2]) /2
elif min_index == 1:
  res = min * return_min(len[0],len[2]) /2
else:
  res = min * return_min(len[0],len[1]) /2

print(int(res))

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

Solution (Python):
a,b,c = (list)(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(int(ab*bc/2))

Solution (Python):
line = input().split(" ")
ab = int(line[0])
bc = int(line[1])

print(int((ab*bc)/2))

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

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

teihen = hen_list[0]
takasa = hen_list[1]

print(int(teihen * takasa / 2))

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

Solution (Python):
A, B, C = (int(x) for x in input().split())

if (A < C) & (B < C):
  print (A*B//2)
elif (A<B) & (C&B):
  print (A*C//2)
else:
  print (B*C//2)

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

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(min(min(a * b, a * c), c * b)/ 2))

Solution (Python):
def A():
    ab, bc, ca = (int(x) for x in input().split())
    if pow(ab,2) + pow(bc,2) != pow(ca,2):
        print("invalid")
    print(int(ab * bc /2))


if __name__== '__main__':
    A()

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

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

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

Solution (Python):

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

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

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

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

Solution (Python):
from numpy import sqrt
a,b,c = [int(x) for x in input().split()]
s = (a+b+c)/2
print(int(sqrt(s*(s-a)*(s-b)*(s-c))))

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

Solution (Python):

def main():
    n = [int(i) for i in input().split()]
    a2, b2, c2 = [i**2 for i in n]
    a, b, c = n
    
    
    ans = 0
    if a2+b2 == c2:
        ans = a * b
    elif b2+c2 == a2:
        ans = b * c
    elif a2+c2 == b2:
        ans == a * c
    print(int(ans/2))

main()

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

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

print(int(a*b/2))

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

Solution (Python):
line = input()
AB = line.split()[0]
BC = line.split()[1]

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

Solution (Python):
def inpl(): return list(map(int, input().split()))


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

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

s=(a+b+c)/2
t2=s*(s-a)*(s-b)*(s-c)
t=t2**0.5
print(int(t))

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

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

maxside = max(A, B, C)

print(int(A * B * C / maxside / 2))

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

Solution (Python):
import math
a = list(map(int, input().split()))
s = sum(a) / 2
print(int(math.sqrt(s*(s-a[0])*(s-a[1])*(s-a[2]))))

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

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

Solution (Python):
ab, bc, ca = (int(i) for i in input().split())

ans = (ab * bc) / 2

print(int(ans))

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

Solution (Python):



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

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

ans = ab * bc // 2
print(ans)

Solution (Python):
from sys import stdin

abc = [int(i) for i in stdin.readline().rstrip().split(" ")]
s = sum(abc) / 2
print(int((s*(s-abc[0])*(s-abc[1])*(s-abc[2]))**(1/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 = sorted(map(int, input().split()))
print("{}".format(int(a*b/2)))

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

Solution (Python):
value = input()
ab = int(value.split(" ")[0])
bc = int(value.split(" ")[1])

print(int(ab * bc / 2))

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

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

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

S = (AB*BC) // 2
print(S)

Solution (Python):
input = list(map(int,input().split()))
ab = int(input[0])
bc = int(input[1])
cd = int(input[2])

result = int(ab * bc * 0.5)

print(result)

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

print(int(a*c/2))

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

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

Solution (Python):
inputList = [int(i) for i in input().split()]
ab = inputList[0]
bc = inputList[1]
a = int (ab * bc / 2)
print(a)

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

result = int(AB * BC / 2)

print(result)

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

s=a*b//2

print(s)

Solution (Python):
import math
x = input().split()
a,b,c = int(x[0]),int(x[1]),int(x[2])
s = (a+b+c)/2
ans = math.sqrt(s*(s-a)*(s-b)*(s-c))
print(int(ans))

Solution (Python):
l =[int(i)for i in input().split()]
l = sorted(l)
print(l[0]*l[1]//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()))
l = [a,c,b,c]
l.sort()


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

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

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

print(int(int(ab) * int(bc) / 2))

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

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

a = int(AB * BC / 2)

print(str(a))

Solution (Python):
list = input().split(' ')

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

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

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

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

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

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

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

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

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

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

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

print (int(a*b/2))

Solution (Python):
x = input().split()
a = int(x[0])
b = int(x[1])
c = int(x[2])
s = int(a*b/2)
print(s)

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

Solution (Python):
e = [int(i) for i in input().split()]
e.sort()
print(e[0] * e[1] // 2)

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

Solution (Python):
inp = [int(i) for i in input().split()]
ru = inp[0] * inp[1] / 2
print(int(ru))

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

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

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

Solution (Python):
inputs=  sorted(list(map(int, input().split(" "))))

out = inputs[0] * inputs[1] // 2

print(out)

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

print(a * b // 2)

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

S = ab * bc / 2
print(int(S))

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

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

Solution (Python):
from sys  import stdin
a =  map(int,stdin.readline().split())
a.sort()
print (a[0]*a[1])/2

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

print(int(a*b/2))

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

Solution (Python):

aD = sorted(int(_) for _ in input().split())
print(aD[0]*aD[1]//2)

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

s = int((a * b)/2)

print(s)

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

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





a.sort()
print(int(a[0] * a[1] / 2))

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

print(int(a * b / 2))

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

Solution (Python):
ab, bc, ca = list(map(int, input().split()))
 
print(int(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(1/2*AB*BC))

Solution (Python):
from sys import stdin

def main():
    N = list(map(int, input().split()))

    N.sort()
    print((N[1] * N[0]) // 2)

input = lambda: stdin.readline().rstrip()
main()

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

print(a*b//2)

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


main()

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

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

print(int(c * a / 2))

Solution (Python):

import sys

import heapq
import re
import bisect
import random
import math
import itertools
from collections import defaultdict, deque
from copy import deepcopy
from decimal import *

a = list(map(int, input().split()))

a = sorted(a)

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

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

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

Solution (Python):
import numpy as np
ab, bc, ca = list(map(int, input().split()))
ab = np.clip(ab, 1, 100)
bc = np.clip(bc, 1, 100)
ca = np.clip(ca, 1, 100)

area = ab * bc * 0.5
print(int(area))

Solution (Python):
n=[int(x) for x in input().split()]
print(int(0.5*n[0]*n[1]))

Solution (Python):
import numpy as np
a,b,c = map(int,input().split(' '))

s = (a + b + c)/2
S2 = s*(s-a)*(s-b)*(s-c)
ans = int(np.sqrt(S2)+0.5)
print(ans)

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

Solution (Python):
from bisect import bisect_left, bisect_right
from collections import Counter, defaultdict, deque
from copy import deepcopy
from functools import lru_cache, reduce
from math import ceil, floor

import heapq
import itertools
import operator


def get_int():
    return int(input())


def get_str():
    return input().strip()


def get_int_list():
    return [int(i) for i in input().split()]


def get_char_list():
    return list(input().strip())


def main():
    ab, bc, ca = get_int_list()
    print(ab * bc // 2)


if __name__ == '__main__':
    main()