Problem:


Score : 500 points

Problem Statement

We have a two-dimensional grid with H \times W squares. There are M targets to destroy in this grid - the position of the i-th target is \left(h_i, w_i \right).

Takahashi will choose one square in this grid, place a bomb there, and ignite it. The bomb will destroy all targets that are in the row or the column where the bomb is placed. It is possible to place the bomb at a square with a target.

Takahashi is trying to maximize the number of targets to destroy. Find the maximum number of targets that can be destroyed.

Constraints

All values in input are integers.

1 \leq H, W \leq 3 \times 10^5

1 \leq M \leq \min\left(H\times W, 3 \times 10^5\right)

1 \leq h_i \leq H

1 \leq w_i \leq W

\left(h_i, w_i\right) \neq \left(h_j, w_j\right) \left(i \neq j\right)

Input

Input is given from Standard Input in the following format:

H W M
h_1 w_1
\vdots
h_M w_M

Output

Print the answer.

Sample Input 1

2 3 3
2 2
1 1
1 3

Sample Output 1

3

We can destroy all the targets by placing the bomb at \left(1, 2\right).

Sample Input 2

3 3 4
3 3
3 1
1 1
1 2

Sample Output 2

3

Sample Input 3

5 5 10
2 5
4 3
2 3
5 5
2 2
5 4
5 3
5 1
3 5
1 4

Sample Output 3

6



Sample input:
2 3 3
2 2
1 1
1 3


Sample output:
3

Submission status: Wrong Answer

Solution code:
# compiled by pythran
"""
#pythran export main2()
import numpy as np
i4 = np.int32
i8 = np.int64


def solve(h, w, l, H, W):
    h_max = []
    w_max = []
    hm = h.max()
    wm = w.max()
    for i in range(H):
        if h[i] == hm:
            h_max.append(i)
    for i in range(W):
        if w[i] == wm:
            w_max.append(i)
    for hj in h_max:
        for wj in w_max:
            if not wj in l[hj]:
                return hm + wm
    return hm + wm - 1


def main(in_file):
    stdin = open(in_file)
    H, W, M = [int(x) for x in stdin.readline().split()]
    h = np.zeros(H + 1, i8)
    w = np.zeros(W + 1, i8)
    l = [[] for _ in range(H + 1)]
    for _ in range(M):
        hi, wi = [int(x) for x in stdin.readline().split()]
        h[hi] += 1
        w[wi] += 1
        l[hi].append(wi)
    ans = solve(h, w, l, H, W)
    print(ans)


def main2():
    main('/dev/stdin')




"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'H4sIAMkdQV8C/+19C3hTVbbwSdNHQGgiIJSHELRiK1AaWkoLiCklcCIpdmhBHMVDSFMaTZNOcwJFYUTaOsRYZF6O/4x3rjPjON4ZZ64zeh1kFFpe5aEjojwUH/jClIjgC4oP8q+19z7JPqcJr5l77/f/30TpPmudvdZee+2119qvc849NsesNJ1OUH5pwnQBob3DrQS2Mrz58XgWwJUKfeDvKGGkkAlwOpfPKlhVaQ9jraQGlk/P6ErTKFyaZlWlI1g+JdVxaYbA/6yqVAwKqhQkj9OhrHkrKTZv5WJV+gRjujdTTZfG6CKrKDayarEqFdIEVarUL539q2H4GlYvJZ3J8s3k8uOv6kO5Fq/rfRSu91lV6ZMs35Mauu8AXaZw4T8TS+ex8lLp5ZBeUKVKO0zwepaUFE/w1o73enzB5vHNpSXjS4oLAv6CiUQmE8s7e+78eHuncTIPYji8v2x2jq7qxD2n97+x4E93T/Y63h/6/bl4r5jRZMG/1mzT4n75fdKQcnU/QYf3SuHfNPj3+x9O2/KI64Xtfe9dLz39ZtH+cZ9Kt79W/WjL2jbX4Dt/+sz4X45o3DDo4X4VzfY7n8237XecSy/DoLABSfArhOT4x9KT43emJccv1CfHz05Rrl2XHD82Bf6uzOT4W1Pw/3uK/OYU+a0p8B0p+NyYkRw/JEX+JSn4d6ao79wU+XNT5H85RTt6UvDpTtG+zSnyL0lR7p9SlHt7CjsZlIL/gynw41LYVUGK/E+lkPO3KeQZkAL/vRTl3ppCb5NSyPNxCv5TUuTflcKuTqQotzEFn6dTyB9J0V7TU5T7dQp7HpcC/+8pyl2VQk5TPCKpfzNT8NGDHkYLVwg7mR9XaNsEio8w/EKGP5xG8VYW15T4ENJTfBXD5zD8atDD5Zif8VHiwlKmn46hVpU8FaxdGoer8e0ZlH8947+a4SczOcWVanxjJpY7TDhyL5OTFVyrtJeG/yiGX6/BCxC/AnKta+xYjFklgiQtbfD7pIDsbJIlSZC+O7daLvX4A9ISZ8BdbPd55JkW2zLA1yyoli2TAOtxQe4mt7NhSbDO7gKkxVXvbJLkJqdHDthdNhvybG6WGt1NAb/P6fXIK6RlhYSzv6gxKNtchNtcS6EkuZqbnUs8yywT4TrgkVxeZyAgySsa3ZLHV+e3IdGcanmSC1HA2lIkVUrLPbVuH9z3yEQu4FoGWI8v4G6S7V6bbV61v4ZVpIyKC9VJKugkl9ftbLLBnYmSHaoM/2Sn7AbaWm8V8q6WUTC5vsm/XPK6fUvlesnd1ORvqpoDdQDhnZLT6/W7gEZyN7vcjbLH7yNklhJJ8lMtKZIlE2Ae4IqojCy3vUaqKZRs1SVS1ZzqIslL61GChXjdrCUAMZmozmKxlCWoPb6ljEeSoqqdWF6FBStbRCp7U6Pb1+CvdTMdxzlOjDcxMEzNylJU5/HVSnWepoAs+etsoJKGBo1wF8pqIrSfy++DfEGXbGtwUc0XK5r3B7EEqcnpW+qW6hpkKOoujaHOnEht1A5tzrfEJUgzuckN7bXMbWuItyQVY4mzVnI5AzIW5FveMA+UVubz03syzTuZz0tMY1myHlVhiUtrKWoK+mRPg5saFjPbeBVYvS6pgSZzDQRy8o1UU3PpNqR0yoSQxcvrnXIvy7xQMQuh8ZvcjV6nC1TegBJeGiN0As5GMOpaG2MCjXSpuishugNvpFUd6fSkjWmLl8Xdg38pME54B6yCpnFZ9wVxmNlQP8iJN4kXL4V75VqhVwlgWPPmXILubKxidU1utSe7xHZwgQnJbtu8BtqHil3Qhf+BVg0EPEt9ULPqYurX/ZPqvMFAPdEmempNV4QI10CDG1wtdUEhCFkEab5vOTbrPHcg2ODGmy6arc4PZiPUyW4v+FssDvy1VOf0eAUQT/Z7hTq3v06oW+qWA4KLdGu8AQFBCQKyu9kjCw3uhoCbJK7GFUKdy+sPuBFq8C9zC0tcDY2QHQtlwbbB6YFCQePC7IoKqaigUJjtsM+oWLgQrosLJqpBi0UFlglwVT7DLlkKitRkqnz0WppYYElcTiyYRKftepiP6uG/NCGDXKeR6zSCy4C5P8VkMXwWzPDT2X3814dQI4b+o3+Rsi9J08g8N53wVv5LZ7z1ZNykE45nJsZ3VWNWXCYA7U+ylPl2Jhlb4f1G/NfzM2DZR3gki+KcBDYIf2Bw6J78NJwxb2Twq/95ZwaumOxk8PdI/nThVQbL+T8yoITvxctLE/pmJcZ/P/nhQ5m4AvIJwwWHefqg1s6w/JF76DgM1x4s3PDqJIefyM8f2Xgug83flZ/I4afx82gOX8yPzzn8JJ7/qgS+hMNXcfjJHL6ew0/l8Mr4EvHXc/ic1RSfxY15yfiaw6dx+DwOr+fwhRw+ncOXcnh+ncvK4fl1HpHDZ/H15fAGfv2Bw/fh8Is5fF9ePxz+Mn4+xeH78fNiDt+fw6/m8Nkcfi2HN3L49RzexOEf5vCXc/hHOTw/H3qCww/k578cfhCH38Dhr+DXNzj8YN4+OfwQDr+Xw5dx+EMcPoe3Nw4/lLdzDj+M718cfjiH7+HwI/j5zr0J/JUc2sDhR/LzTQ4/ird/Ds/PR80cfjRv/xz+Kt7+OfzVvP1z+Fze/jn8Nbz9c/gxvP1z+Gt5++fwebz9c/h83v45/HW8/XP46bz9c/ixvP1z+HG8/XP48bz9c/gC3v45/ATe/jl8IW//HH4Kb/8cvoi3fw5/A6/nlo8NYjjjhaVmQWzrkNNie8WWbYatQmzSFkDFrtkGf42jrHCFcD1ZOjsSg981GxFGV9m9l8B/QRhdZHcHgX+PMLrG7qcI/GuE0SV2P0rgnyOMrrB7PYF/hDC6wO7VBL4fYRS3u5HAaxBGl9e9mMB3IYyurruKwE0Io4vrthL4DoTRtXUXEngJwujSus0E/i7C6Mq6TQSehzC6sG6BwDcijK6r++RZhGcgbCL1J/AUhC8n9SfwRIQHkPoT+DqEB5L6E/gqhAeR+hN4GMJXkPoTeADCg0n9CdwX4SGk/gROQziH1J/AX9UBPJTUn8CfITyM1J/AxxAeTupP4PcQHkHqT+A3EL6S1J/A+xAeSepP4N0IjyL1/xbhLQibSf0JvBHh0aT+BP4LwleR+hP49whfTepP4F8jnEvqT+CfI3wNqT+Bf4TwGFJ/At+P8LWk/gReg3AeqT+B70I4n9SfwE0IX0fqT+A7EB5L6k/gJQiPI/Un8HcRHk/qT+B5CBeQ+hP4RoQnkPp/Q9of4UJSfwJPQdhC6k/giQhPJPUn8HUIF5H6E/gqhItJ/QGu2vzpmsVCZD+oejOuYW1CcONO6KWRP0PxC7fWFRhHtZIuahw1E8Zgx+2hV24XQ++JLR+crKqxd3V0LLIKYldnFUm6OkZAH73iE5dZ+ILk/1zFwCps2AusxevxrzxwA+n50N37bEZE7Ejd+q2EKkGzieS/9xOSdJ7Vi6GTYmfkBlG3Q3zlrHx5nEMW46ClX329B+orBIfMF0MfRr4PCtiRcTNgdItoTm3+6Dq1vOULqqvE0PubTmL1Qu9ERkBLY4o5xPCIXLHtsJwntlSYY8HRYniq2F5hEsu65IxICygXM96NaVc6iTWWDnRqt5bfvtUe2nFOahujvp6jdoROR45Dm/ACCvPLby5fUD6/vKZavPfjteD27KGY2P587sOou2KXVYjcAbYqdrXmPso87Y7W3Ccw3Yw2tAnHy5GDwBWVmCeGOsWWTpMYMohdVjKs22E1AbXVjA4WUhLSomlQkeeUwCOGWnOfwrvtt4DIj+RuEGh5HSyDI/wkkcYRejJ3L6SVbcflDHuLzayzh7OQ+BBrwgyxBcrhxLIysWaKoe1iSweIZRM2EUFCJzaih4388mtUj41JZyPSiaHbcheLUNgRWljwyu7uYWi42hvG1lcAbw8vEmbeX7Q5J17srm9IscbWXxBu28X2gK589dn5otH2OaoWl4Qjg65F0iyS7/5haAuPkBvQosbWFQRRKoaLIv1QQpCbNvI1qkZe/BVt5IWYgsaUtWaoiYHViAxNkXcHkeVJmrYdDg6NToUa9b4h50JJhljwSiypLQalDGOlfHYG0rCSEWp/71AMu6vAjFofHErsYidOOsTw86SdgNrY+p9wY9PXYPvPYUS17Is8gtxaeuDWo2ob+vHXcRvaShtLL3ZVUBuqQBuqYK1UodjQYTG8SoiM7YnFsDe0UwtFg3iUs1KUmFgXWNZTVHJ5tAjWEwsOQ3qx3ca0OQDrFzoR6QupI/QMsUM7yTjGDhnt8YzdPZjhROTdHqr2h5UhSPvK3Gax/RlSfuTp8YihrS22y7nNkcvHoDitrJmh3d8dggq05oDKcsTQzFyTI1xv2JwXV8nqr5gh1QzBfrnDeHOH8XLsRbRVu4CSpmSga89/yxE6LnZ+Cz4uAj7uekdIzjUb22w5zFq/o8NOdCJyC9FYlz08nTbwUIArQ9MrQ9832NvTT9hDs0yYf91oyG9vn2VC0fLsLTsMyDDH3nlcb2/ZrotOIJ5PDC2COmw3iKGdjjCUJ4byxPBtuQaxZasBssXsLd/qjOsOsH5lQEO6pQSBrWLYkZsjhvPFMLAXp+YFn8ErsxgWsEBRzN9uD52wd8b00GSOUM9zpK7GmZ1z23NLxedi9DfKXvaiwzj7XYeux2Gc8W5l2wfygBvbp31IpiaNp4lpRPU2y6k57elnka91TmjEWeCIQopyNvhEMfS2GDoWacHWDHtzraQ20BGIrN+eQiyI5QgViqF6w5z2cUeJ7wWZyXgLSUxgTzkxeTBNZiHrZuxj93T/hljgIvBhQYOj7HNjW4ae9DKiKlrCL04pTKBp1iGAXIIbVWTZvchqCdnKXFPku6c0vZ8VL+dTn3GVymeMO0V7cy6hmpnbTEwnnGkPzzWI+Z3G1mFXYOvsFju/0ostX+mwyMXG+9IR23LGZGz9ahC65NLKstPG1krEgs2KYasJOx6uOFS2+3WbDAI1tblfYgts22yO2/STp5lNX0fK2eoImXdApECjZsZMZp2Osi+NrZ8Mwize3EKxfRXlKYaez+3Bpv3yC9K0HONqhfErhGo7NFgyxlz3Gq1QjAdRUvQtsBiD0sGgU6ANL8Ru0OgIrcytd4RqcxdjXDrJnCjuyhpbW1hHO/kF6norhoAw8gGPTjrcE4gH64eGzBdDHoNDFxVDt0CnixnXthIVLk9D2w99HB1sb9mmc4Sc0Jd2QF86C33Jjd2y7M3gh478r8WWr8GTPj+QWIcYOhTvJPbQW3bddhhWYSeBntEt9jkkSyjUrUSo7Wgg2WByjhB0izcibdBQjvbcsVgcyCFDX49FBE5OIoMOOqLHZEeqaFygB/1QRDeeW4CAAlb/++iziRHGerTqDZ+jrenpNA3cQtnb8h1ieCy64hPUFUd4V/xi5AdAEN3O/MuJSHNvets56WcTestxm+WDaBnq3oQelvUfY1sbBOjutd/Qnq2+9Su89dg3aFwfc6Zy6gtmKsMHoicG43pfYzD5UXm+uEHxSmLZVuMP+mOztI97iw4qIF58hmxtQiU0bUuXAS4NjvbiQ5WhIHSeLssp9ELHP6VSgbHkOcKLDdEhLHe58XKbYGcBHfyZPf/jytBkQBA7hZSZ6AfGdb8iPbpBwLaMXqMZf2Pfz/sMvcx2sKlt0ITf6L7fxFX1MlpVueTc0QbdExmXQIsPi/65TikERnaJO/L/ARcEzuxHbDCxJvJHqF93c0ypJAQ/4vwWyleILc8T/wE9x5tbek9h90sZdBBEukzwU+ruDJE78UqV17ju1xmkYPBAOO6JTuHtD4hyIiWE/AFyGwaoOohWYoiBUx8gvIytt2GB7eg8Q+/Ew/jH13BhPPR2xDFSM1YbYUKWFRjExzrCAT5+d3zGrOYnRhr+qlJ7mZx4GIf2zv/EEfqSRHLOorYbf7DLiE18ythap6PD+XUnqYcJIwNFV/aTtNvCmGIo+BWD2J4O/qXchJTrxhHKGKVoF8HyHBB9WzoMJOjaOz+B4L5DFx2vKLAyNC0X7ITE95CZNIGIxht3R4dJBbBl7i1A6buwaNERHk1ipGOqOfg8E4/U02rP3+YIfYiVA2OFkUrcZTnax+Xxcf0liOvdoi6C3gvH/BjXj5O4/vAJUmsyBCR1w6FTaFoUGDpAQCs6tnfAsTlC70WePBmP0dsNcc825kSMqSCUg2EdxhRRGtOHxPgJUt16jKZVxIodwKVUHkWuZXs8yK/sRjuJ2z+zAoxfbe06Ot40YO9/+hMsEplBD3wcAdI1/soTPMITrPmEmnxVpPmTi4nwN35CI/yMT7gITyrrCEMDWg2O/CPG1qL+6CT6wQxy14psUf8ACWHGtfr+2CMcufXGB3v6IVkNTHla0nfrxM4eGA/06Iz3nemHlNh72zqwrQuRvpWEZeParUhUttP44EZC7chtBOpOmKml59rDlUA3H0YZdHDR1rGij6jba1zbSWj2Gls2EJoRnaRfLSbAnQZx6p0w6vit4vtJwWQ+tN3QvVLHT73j/k08TmZ1bF0Q/FzZJ8bWrYrTAr0do3p7n9NbV2QAUEU7kN6QjP4356Pf9zGhD+vpoAGHr5/YccUBh68nueHruMJeZu7QnVTMvCZu5n/+mIzToza1Pc4EEwrn4Qys7TGY4Hb/TjWlV93/L7y/Af7YLDEYAJ+mI3lU4ZwQQCAYRD0DjoJhQkPiz6rjtLvk0e5yCrvL6cjpKM54poqhO3Fcb4JB8AnSG8TQWNqL4n7c2PZTnLQQV2RsvQeuIxuBuDsIV5xnfPw4DTJXQ/3OHWdw8M5TehnlJHAA55kP/S2+wtACYzVhxeBoneWwFts8D+MCGn9oZ8sRPUHqjS19Ybpq2cVlJjNT0hva++227OP6e/Er9rLPHUbH22LLFh3YcfBj+/N8GYV05tN8CxbUwxdUCAVNpAU9zxVE5k/ydVhaIyuNj2dY3hdQ3tF4ebQmpC/isDTPAeXlGNctS8NoAc0wE5d12m+G2d09JhuOM2pgegUZrdGr1ztCQTZ/20umbtCGGAAcZTL4gNaiNGpRi+eWjTgZPCqGrxOnTgjusYcni/lf2kPH7Rij0L4jnH1PU7nxl8G+zziIGz+D/nesCMNnExj5t8TIX+xmEQyExxqL6PKsItilKZqFU3zA36g4+bmh4ij6RzNG6NAxMfRl5MVjSP8JoyL0hBPz+GLbKeq3h4hgxxO6qUtV5cTZJ40CN7aP+xoDWKiHNIED/uR0Hz0LNPmdYuhl3h6ig4yjVlP/0Jkulr1sbH0DF5uIgYSLd8PFbgMzC3vZqyth+PwG1gluyn8Hf/HZqjEkLxSxO8dR9vbKDdFr66j/4nOtfEMMHVBnfNAe+jx6PxFoj8puoFqN0ez1VJ49xtanmTyNnDzEbOxlr60cCqERCnmZiDLYEa59GZgfXbklOkTBrgTtHojf+A976IvoYzi2A1lU64eOshFboLBM1EQHmOPM3PogtNEu47qgMkJykBWQAIxD7qbmJyvmd1UdZ38n1fb3KVifjlpf49yy3JM4xi9A63tJDA8U8/eLoajY+TVaHz/vcbRPy+llfaLuEGd9NZz1zf0IXex2Zgly3PogT9RgwwUyvNGeTsbwYMTECitD8lskTF8N8ylsoNCr6DpnRNAS34jbby9L3Ec7Nljiwchvj8YtUcnpAGcKDhaM8FtaGlSshxgvDmryqDUeAmukzdBI7cVRlgv6L8pQ9N8ZPE76/GjAVIaHVIZnGyrLttDZTWs4jTWJPgMn8ZeJMPCI5qra096yBQlIQxB5ja3z0X2UfSp/YA+n9Q7ixrV9dCx+96Rje03rdIR2J/wjCvMTcgM82igR5MFF4vzXxZYz5pXfETu7MzCk4KCc2n/ZnSfl5fC3R75HLBuLf+4EGdbT+G+GfDBwOqO75yBAJyknlfxi5xk9ZpCvgr9p8kD4qze21RERx8oWHEPgRR67EI22QzBZC47uriBTA+AJ0MDuSRTqWY8zudZrCbQFCD4ztl2H013c76AstgY/7M7C+QPzBziiOaFnGjmqj2tEuY/6aNUn9HETDq3F/EMwuCL6iDB9dHD6aCT6CHL6eCCujw5cTo3rAzlp9EHHbfJI+JsmG+GvPvhd5DRJ0cW4hC5eB9cRHB2dQhWxJzg4OgG1wMefsj3y8LguClAXu75VdLEn+CGMwZvtjtAR8fRebolft9NRdihhU6tmdw/Qk9lq8+zkeVeJ3SfRWDcoaBi0qlgYH9yL4U33Jo7BC6OT+P2EnTSz8cE/0iz2sheNrZ16XM7dFsPxWxYdxI+0t8yGIXiRPXwDnTkZ38dxTiySBWl0RHwFvOc9OqI+CSkhkV/ajOdvHKGjkY/xXjhj0hwztKgVfNTDe9cspp3MACWuvrtUkDPur6iIDkYOI9/H3DBCfGcT7j/EqgqNm04SXpHAu1hIV2QsKQQXEq/GeWaENHSFKSbPFVtskNTbW2blxIxtP8HB0SrcfahUVgk3CNpVwunv0aXqEiIlxy34F1a7vqvvNsDcl5ACQf/3yAIkZHiYLKmQHKswx9NsFSP6LsoHIgSviK8gH3wXizkdeRnrAJNlMnNOG46nH7bhntKt5beVLyq/vVxatBVZPPFur/WcUdx6To6yngO890buhszRXVhP2vjxpZoRaHuj4E+k513aPlXvMuGNbQehf3ZPwZuH36XL+kWK3Ma2W5DyBviz+ewiq7Ap7Xar8NxfF1uFjXi0IHL/EbjxXj3cSPfADR/82XgWt2y+hzeqXHDjTvjz3G74s/EbvLFQfcNxh3LjhiOqMv7TqZQxBm/cCmDkzXfg6qd4tQ+vemohc5sbMn8EfzbitnrkzDsqLiW1Cpcj6htGCW7cgje68AYOiiMN77DdkUdyzTq6C0JWLmA2maOL7+eRnRW6GxWUOI53364UFXxHEXisutC8OiXLPPWN1qXKjTK4EamFGkc2v41m2AiTiB2D4jthu48gksqj9QTgrQYsv3rz36Bmkb8A8eYr7gT+v4I/z+m9wB+PGURef5taHXLbtBRFxtMKkYmAZnUaysm1N66lXxFpIEJXGeLCfPsWFJLYlDp7hMw2gkNwU4soruwdsPeP3iZTqmgdjhZbOkz2UBYO7mmG14MGo0kPE5Oo0R4yYs1QvfbQbJNSS7g2nLMlumYrKdnrsndlHmmwxpehNpGWrQAZSKR3nMV6jkI/mBffXkJX1D4tXby3C8HwM+mFkLT8XRd5ERojOpysD7yVUBvZA9kS8RNNPpm7VqAL780o3erEvu9auh/bmmvFVWrQyyBcJ1usY3tfkVHAMjoNhSgkQjyQW0oWqzuWDbTn7yR5LKcs+yJ/hXKig0QOZQ91kPbgdL/mHar7gThOahbLToDifVCA5XDUye0RwtAJbnYH+xhNNoFoXQxdhiLQSlQQra+m14aUldJuL4JLvxGmkbikSPXZv9rKPHzogXS+4ZpXgbsH66BaaM1tJEaACzGdb9JlG8y1EGqEyq5CI2tmml+NwC8Oq2bGD7xNa51uOR6dI4a2q+e4mw1k/QsZw9CHLIPgyp3NhEt9ENgycGFCBwiDyFaGRbYybA/5yK6WmS5dDFUtGQ15kzpQI6RgbBvA2Dathz8bj9xsJeuMj79F9nEUr5wR+RCkJgKjaxUPx2Ipef/tMOX99GEaI8LA6mkd2RkDjpbD3f+HXsVbuW9kLWSN6gkuY9t0VSu8NP1iW2Hq4RSt8NlhrhWueIMViSJG3kQRcbowH8I91GgUjBDs7bOV/d836CjhXUhbD8uZ0Qmth4NjMbweoQHY2IZPsXVvUirGu44n36BqqH2DRmRGElzQ/SDS4LPOQENUi4H7+Ov8UrmxzQoTre7REFK78VHj7uVpiezYEpteV3GVp9MWmaxqkfw3aIuMfoNq5gjrC1ETzyrAWB1irMYlO4Hw9uuU1YHXKatDylY4EO49F+FvGeG/McK9HKFyEiGPnkQYHR+HrWdE9YyogyN66lylTWaEExjhU4yQbIuvyWD7/Ma25Xip2uv/9hAdQH15SL3X7wh9FPnVG6xT0NVYY9vN2CRjMkiTdI+kafQyzNKyMtcgyMWJlgyOUG8J/vSQsr8RxivInwdjrhBb0MujNKvotULjZDR5UYmIkbCSYemULsF/Upz/WLjqPqOnwo1lhDmcUImNBIER5UROHYzR9e/u7+jRsnXMsnG/nha5jYlqjlNvOUipzZENB5WtNpK39QmWl8Ftl+sUOJzjgOEBDGblcjYgzKMbfKPVZzXqDtJB3e0HtSPJYBe3qUcHwWUHla3yCQeTL6QbWxuxWj/TyLUwltgivDC5/n6AyrXjwAXI9asDilw/O6BW0ImzdK+AyvZamkCP/xjbdpH1OM6yFx2glj3/ALfY3/1r6ha6H1PaSbHQOwDRvS7RerTdScsa2/4mcBtu6QeUtv9qP10SriJDc2PrY6RStkTDxc8p4NEHopzxVDlj1Mr5836qnP/YH1cOXUVmGtrC1q4TGrpnv7IFEtyfquXQCXT/iKDiMrbdRlruQgXLYYKZLliwo68pOgGy119jhzbUDZd8d+bJ12iDPfYaf/6CTHqWcpM58NxU4nw6IboqEXrveI1Ku+S15NLusNNdCpSPTQMnv0a92ARIoxnkhno2WMh87GU4GwxmRB5nUp59ldZnIZ2CXkFPuBRGZyaQwaiG9g5Gu+VV5SzL4ITwf3yVCv/bV7mZ4qF+1KFWgf4TxxFbPoZ4dNoeOsuNCX376er/7TAAtIe221u2mxyhPDIMDhOvHIvcuY96ZbIJ09JjXDYST1+hGmDgefY1ut6H40aykVRhwiNDo3EXPNi//P6s8rU2IToAhpgFDnI2ArcQd+1TYjCOIMOX7UjX9Rov2kMjxZZtpvhEd+vm00tgzuIjwuxgQRXm//to9K8DOej63Xy+wvVi6HN76Bsx9NGmE0iO5uQIjyVhamYm2gmZitOOOi6XnMKz4dJrOAj/Kg0gM1Ty9VeVI3Zk14y0jrH1ykxyhswRvkHJLXZtwVXSyArSJls5NWe9xjauf0Sqtr1Sd9ah+5rOdGyCI/9zsDUdPc/V8rWpaQTRMC38kVfpIQdybsQeqjRhT6iHbLpgTfn92WsN0VvJ2U0mf7CE9F2u7PCrtImH2emhTWRm77KRg4DlO2wmIToWF2ZJP/5utEQMdZGtqzciV73CmgkPVuA6JbaTnR3utCuHOwndVZr+/wrr/68kDstyQ/Iz+5g2niSDs/NsWOGZICvumpNWW5dOjvMYyOgRTLLUZvkADy3k4UZNFZ4kEqMFqv09dp7OETqJfaxQDOXZQ2/igGAxNOJX0N03fQam8Vw6PWGF9mkn4m8neJxQGSJ//YZ2WwPxkFeT0UCRGJ5jIAvWxyJ/JRQzgXsSD9V3L+2/aXuphzLQE2KVBrqwZlxzSk9nh4sd+R+K7eScAbY1ep2yiGicFUG/1YcU3UmyQku3k1jzranpSiKhGDoKttLIxIBO1S8XmeQg5ViH7n3IqgsOuv8yMJcR6vPUIu7PkAN7E1/GSqbnkjV5Ym7Y4Jwllb9CLWmcerYIk/0aKKnsFbmIzBTJKYAKU3Qs239B8Yi4RBvf/J3MOKfEZTClYeOTYE0mlDV4QAwgMpsEsl6ugXinAxiRwwVIVypOzTO2DYKuXQl9MRRx5PdAv6Q7xR38TvGN7YO4nWKxbLdonP2KQ3dSNM54BXcToOiF8nKY5u8nexlr/k4c35zQiC/EULcj/4x8h9jS2RPa2RnR49ZAy5EsudGyz3JKvd4fnnbQHpr2mr0r/SDtIDt6lI3F93GXKP8zR3tTjyPUI+afFFvOlAamdR8kR5A+SJQUfKiS+Fg0WKxu21AcZ4wgR03eQ1KgM64hx3NbtkBtD/D71dBf54IKGSQiaFJOjwMMDmBuTryzhcUcgM3KaT6AzQDnJU4lidBd5hYqJ80BLgS4FOBCBpcCbAW4lAbeHVYwDSsYrrHtezE8B/stf2QK++M7kZ4XcVpMzwPYsW+WHZevZVFW/oT2oY+4PrQnsgMootvQXqEEk4NsqDPl0AMov30RPTu4gMrQtZWh5QY0jIX29nFkVFbqIJtCfM9vy/yGLAvjsWX1DOXWF2lsr34Rvf62em6t1WaJqbxRW9PXqiW6xPLeQ3tUNxJrZKvwBgllv8Er12LIMtqFiwLvWToim19Msb45CzJHv6dEPhQvdw8ZDeAg9kHSELwD/tke6oAf3KN+WuGGl+jqJaj5Wqpms8pVSXuoq7oZi8uICuRk7spcayQzMzFxolRs4oRugJASeXDyFBm2h8bkfVCZuvWq5yFywHOu/j7OxCaRCdNpMfS1GP5+IQmoffSao+2de5S4e7VeFdI2vEgd0XWpQpo2SuGhB3LWFGxlrD0820xPgUM5jvbaXJP6PAiMgD7ahM/oRtbvYYHqsDqklr7I8NenkaOx6G7QLEOFOOqasoudUk3PxaCDAX2oiHECXfRLe9jjB8RD02h+HYnmg43POnJN4KCHq/ebMB4fxXj8o12Kf7aBedNwrH3WgsTI3+mUEcx8DFCRFTuZqdCBo6PsNLSXvIuaiHcXrnYyjcwglKWR5btjMYDb5ugYywac4oRtLGzhVuUN4ujdom638dnbTPwi45VUZXIp94iIcdOrylMikVW7ej8gEu3P7YdZjm86iXEXFFn+JfKC0g+QIXlxLjmqt4tY+3yDfeoCA0wX2/bJE+3hEvLowsmdROyfbLW3zILa9sf9cMthAshDiAbk0tbD8rzosqd1NMux9fbwdHImn9r/Tmq6N+9M9BuquZ3qDlayk2qvYCcuWeEDDVSDbS98m2ILobULKO7dhj2A8yhJfcQtXSm8irVL2YY4uoPZWFfkMuw2eT6rEB1G7+1O3JOgSyQWHrFnjwf9R8mpQgAKu+jCW94ucjAqvlS1cwcuhR8P1kTv4dF/BnTUSpboUSUlCWO6touqYxSk0ZGYA8Ydg2k2I6e54P7ooaSPgGB90FTf3qFMDbrYslAscv9O/jwWPv8FcxgxLFmVnUdo1iJ7+PZShGuoW6tUubW1O6hbW70D484sEqmi16myuFmWRTSLlY7RCM/gk3BRyBU2AWAzwlV0Qc0eX1C7gXEZQrmYkxT0zXaa5YvtJEshKwj5BZ+CCxNXkEF5Ok3FYSPj8BfKgcZxlrFufTW61K4ssr/R0mWIONhGZC1pondu7b57O6/OXvlHsPzFSv456vxxdw4TH4y+d9M9XxnaxB4eVRn2QzSPBkdHZ7P9efSIhu2a1Zu35Gsc4atxpnjC3jIzF8M9jJty7e04CoRK7o7s3waWtJVuw9A599Zt1Fj/to2sqZN3zsVnh5x9oHwk2DxMlmXOKpWDYbKZ7vTcsg3nygj+HDcpscaR7QR3Gw5CR+TGR+k7cBzqwMWKSvBpJOpZyXFc3IIx4xZM6COyAVMCNYyOxmlbI3qupVsBHCDG7+NuzMDtqt0YbH90lLlkORNjGHh2DAplr+MpPrjAIbEdx+LRoSIohy53v7AVd8o+iBbTLTE2PyNzaa3cdoBYFIRgzTZhto8xk2PDUJf+r4xR1v4d6WakzaOr/ivxmBzb4yEWJ26lM5c8ut4PA6hIxja63oDnSCJ5W1RbLkNZ1Rb0OlJIt1vyt7LtFj3dbamAyDkajSGTGIOOzAO6KtgssIJtt9xugCzg0wvAo1MA9ESNZ7jKeDIiD29BU/kosn4LMZUqcI7getEe0GLQXsixatZp79gS33p5J/JSJ7q+D+jTdJQ9PRqgKWISK2I8pNHlhB1tor6RYVvo1gegMhZck1D3kmsuUN2vd/ZS90NbOHU/18EKwFD1wFbaLWohxfFxr/7/DevHLpKh1/1x7MHWmVtZvls7Vf2djN+wOz1Bxga4/SvfQhxwDpp7HtDQRz/fR6nLbsvNk7NB2U8QZdMTCu1k2v0O7XxvgvCb7sSBbT7zNDd24ggkU7uvnAh79g4MCrhYGByFBl8Y341t6SoMy+lVuA87E7Weg/w2bqbdu5Btwh4DcugQhmspEidWG9G0Iq90KOH0Z5tJyHRAhhxcSNDMQNEDLI5vz65mjyYaIquBLFrCFjMdMN/gNmYNxC+M7OQ2Zg2KKzAA1vpfOmUdLVIKMIx78JU1G/E9iuR55k46VMfps6MsJo+MbMHShvC4jMifAGdtPS73RxLnZmoXkCHjrauo4YGu+ndflTC8QqxZqbK7R6vSSsyKrX9vprZXqtheY2RYB7e0eP0mOkL6sgOtaeYF+dvuTYq/LcEjHvhqgsj8zf+Qv92xWeVvT7/Q29/+ZrPK37Z2XJK/rdz0j/nb+aMTDsA5+gIdwKEXejmAn27iHMCG51X+9j82n9vfPvfCf7O/zXuBOkPzC/Ht7nP426+e5/ztoucvzN9uf54W8cLzvfzt759P+NujoxLq/mzUBarb83wvdY95gVO3/W+cvx2xifrbL16g/hbt3x46iEMiR/s1O0aahfli+/i/Q1pdHvrWHjqFi3r4LpXOb/WR320kMxrZbDmsOFhH6CtH6NTM0Iny2KA3yTJw2VvBY2Q8tyg+vFmfcMifb2XvZiFvY6Hv7zrXb0Kte9mEgFzr8QlNY/GtbMKEen+De4LPc4dnQoPH53H5fbXOoglu37LABKfs8te6m/Bd3xMaV8j1fl9RQemEgEd2j290uu50LnUHCL7J6WP3Pa4JQdnjDUwI1Dub3LVSk7uuoL6xUajwB721vmtlM75izlzn8brNQo35ujynz+9b0eAPBsw+Z4M7AFzd+VOmKLymTCHMpkxJcJsGsk+Zwt6eN2UK//a8afjivOnm6VOmQCFNTtnfNH56Xr6ZvFHTfGuN+Xrz+WgXgUxjLkGm85Lge1uBRMKKc/JdpxbvotgsEnj5p0yh73y8xApcjFKvu1idXhOYYpakRn/AnLe83uOqN3sC5mvuCuabp5vlek9g/PSA5y43MFXfFewTbjLTMj1+nxn+Jy8SrCXG84/YzjK3C2oxzev3LR1HpWcvr2VIqOx5begCeCwSaKYpU9iLVAWPb5nT66k1e6H/NDm95jp/kxkzA//lHrnejO9FNVsKp1wbpySvBCWc2dtz/wn1vlAjgzbsVbWLoL0ILf7PSbRIMPeF//v30fQd/r27Zl/Q6zX7/LKZtJYmZyC4BC6FWejAMA91Z9CQ0E7gU5cKheZp15t95jFj4M80c61Tdir2/U93tKRqQBKQiYtFEHVgRsy0muloeHXuJrfP5b5gz0JIiQEnmu7WRXmIyacNh5eLLtEML1SKJudyydnU5Fyh9KXUdnSJLBcJefBbYp5+vbkw33wDsMFmI7blCza4m6DFvZ4GjxyYVut2eZFH3pJ8EKPB2QzljzcvyTdPMeddQH6Pj+ZH9s58+KFlXOVf5m6q8/qXm131btedV/3TLUPRljTBWVtLjANrfX5lxemgi9XW5lH3Rhr/f9DxuBsa5RUSWuIl9/YEi/8GN/TPlm/R/6BuE/37kmVPsDD/Nyj3ny7gIuqRPdjvPOCRCdOlbnla4fQ8CbTZ6P7nO2aPz+UN1rqZgwZm6HhINwT3gKM0t082483pF+y/GBM24rhQqkZSwd5eNO7SaWuNSbj2cebG6otwq3wBi/55EehSmjpVwLp4XkpwmHYpsWHsRcaGsf97sQHGMpcWG4BQFRvId3gsE6XZjptmlDskaa5kKVUIJxH1TrbfZMMXs9vOk89SYvMt8zT5fQ3QRS6MoqhadmLvqL2g7GU25a3u52c8A8bjXHb2fl323umvvVbV+6YV/CsMX9hgVeF/zfCiBt/I8Is1eJHhmxvU3y1Zz2DcwCNpNU2131Up1OQz1ajznafyhQuc3qCbqZSXq6dBLW/8Pb8+dXnCQnV5uuH6qU+ydy0f+o9YDF8NU/rHWMyUJgj1kOKr7R6G9Ask/VMsJgK+B9JmSNcejMVehLT5UCw2SC8IhiOxGL4xduEHsRg+CNP8YSxWC+kTkOLTBocgxVd9NB+NxZ6HfM3dsdghgB+G9AtId0JKNvSjsZgV009isbWQLjwRi+1lL+NW3gmtu2ueoGs26Yb3yzKs12WZTOy9yg8/GYsp7/dNnpe+txrzPgJ5lVWZXPZ+3p1PxGKLcQss2zQrO+dG42XLDauFG4ZNva4ol7wmuZB9m8f8fiw2ElfiZmSbyrNzyrPNLfp1aWnH8dI0I9sACLdyjUd28MHVfqAX8o5kQLekSdkG9q5pPBduTnIPN0DxfHkx3HtIoGXNyM6ZkW2ekZ1Xnl3YkvlARnv6Ov2DaWmt2XkEnUOyGNg7rFG3H8ViV8b53hwvEw8pPfJR7zJRZ/jwkvkPsdhodg/vxL/3d1eVg2gzS4+f9NErOh3HdGgAnf4Y351eFbBqdHMTpxuhCr+5h/0I8q/Pg/yLIX85V78Z2YXl2aWzszsyWrIeyGzPWJf+oP6+NH3NsOxSqPoMrr7lyLEjg36zD3X5zGux2DGUwSFbtTqbmW3l1PZnLESlufJsK5EN34xx2/5YbF0W8KmVk8k2M/tRnUq2iszksj0K+kGeM7E93ozFZoEtpz8qJ6/vXoOKZ5o+Oc+9BvplRVy9fea9WOwb/HrAEb6+UDHQnr4l4wFSV70pDRXA17RDT9/p/ybw6IC+OZx8gSDIyUV47AUeVBofx4FKoUedjwC6Rz9iMuQFL1oG5XuLT6HvOBaLuZmtP5gGGdfpbdnm9nRQwAMZYnbhfZlidmlLVmW2tYkoRtN8pG/34APIxxJ9G3+xmK4fGvcgw83CiOUE/kAnnISan9QNaJ8pnEjrv6VC2JM5YP8s4a3MAZtnCSeyDC9UCMcMy54ThSN98Bn/Q9mGDRXCcaNhx2zhS+NnwP6jAYYfVwgnBjwKJT44+IrX5wiPDTa9O0fYOMTwjChszwmcniNsGPoe2ObPR2XEZgv/PuoIXMdyM96bJbRecwZ4fpuf8dYsYc11/wXt+deJt381W/iqpO+6CqF1cl8oa93kfwMJ/1DaFyT5qDQD7n5cmgElnin9ue6dGcIfpg5onyGcmHrVz8uFrmnifeXCn27o+3ur8LB1wDdW4ffWoyal7oOqjft0wpI6cHC6vnC1T5dD8JOE7VDAdp3xzf7Ca7pTUKXd6caXsoVPM4x7soXVmfjgxS5Dxq+yhd/0H/lGf6Gz/0s6heeU+9L6P5El/DjNC2Ca4ZUsoSXdtDlL+Et6/8+zhM3pvwTatzINP80SPswEzZ/JNPw4S7g3a7uO0Q/PMXZnCNcOWpsh+CZ8mS78m77v4+nC7/T70+j90eggasK6P+uFd3STBeGhtBlgYYfTRq/XC9+k/XtcjnPy+dfvX79//f71+9fvX7//H39PjaDzuEfZfG71COu/lPL/0E+XIn0/Uw0f18B92UellG885eXQdle+7bRtEYWVbxYp3w1XvkmkfLtJ+XZRKbuvzPOUb1N9eTbmJ9+3SaP8lG9f9RgorHzzqofdV75RlcEYKN+mUr6pdIWm/vFvb7HvIyljth7NfF/5hpbyLafCgVYV3jrAqpL7JEv7aMo/G6P1WX25lY0fKazIcZLBZ03/u/0o/h17zW8Ba+c6li5j6X0sfYilj7P0WZbuYOkBlh5l6SmWZrLvAg9m6RiWlrB0FksXsLSOpctYeh9LH2Lp4yx9lqU7WHqApUdZeoqlmcNY+Swdw9ISls5i6QKW1rF0GUvvY+lDLH2cpc+ydAdLD7D0KEtPsTST+c/BLB3D0hKWzmLpApbWsXQZS+9j6UPDk9vN7IqKKea8+UuCPjloLi0oLigcbwkSyPJ9S2lBYXE+xQour9O31LzM3RTA4xWWwgL4b3yxKmvBRPM5bUcPXqI0zZoEnybUJMXrBTkpPj3e79X4jHh/V+Mz435Bjc9K2p/00FuVfqjG94n3ZzW+b7zfq/GXxf2fGt9PsCbF94/HSzU+O+431XijsDcp3iTU+5LhLxdy/MnwAwRcFuuNHxj3z2r8oLhfVuMT3/dW4wcn9Rt68JrK9yDV+Jy431Xjhwod9ybDJ77vrcYP74X7Na6/CZ/Gkse73noYyPCLNfhrGB6XpfhfKcPnafBzGB6X/vjfIoav1eD9DP+oBn8vwx/R4H9MYlTCfpRv6j3B8EfYev43LJB9xPDKurvyjTw8xYl4Zf1fwTsYXlmvV74JuJrhT9oo/hjD/4HhO+ZR/Eg2QNjP8FXfVcuD6/qEf7W63OsZ3srkeYjhf5iGbTZM+GzNYtX4428s/+Iraf717KN9Q/WMP302R1jHAvSTDN84l/lTFt/t6RRfyPQznMmJr87Ecj/VlPsbgjfG9zWUuP4qwyv7Kwo+M4PiF2vwZQzfrMH7GX69Bv8Lhhc1+F0Mr+y/KN8QPMPwyn6U8k3AcZkU/2sNXmJ4Zd9J+TbrTxle2XdSvo3YyfDKvpbyDcQTDG/1qfOPyqL4vQ1q/DyGf0KD/35W8v4bymJ2q5lnhBneqsH/kuG185Jnsmj7ntS071aC7+33jjE+T2n4nCL5e/vPVPJfYcD8lwuOJH44Wf6rDXS0rPXzJYRPb397g4F6M638VQyvldNF+PT2wysM6u+lKr8HUuB/a0Aphwp7Nf75SQN+jzURLxQ970jB59Zs/H5ob/8/vE/y/FP7IP9EfFS+mXtjivyNKfCtBA9+jLXvjxV7S5H/Tynwr6fAT+ibHF8B+MvThgo7NfWtSpG/qS/6/Cvi30Vereg5Rf6uFPjDKfCnUuDNlyXHLx6A+N7jlnLMnwZxh+lTmVfdkoKPNwX+pRT4j1Lgv06Bl7Jp++5lcVPZo726X/L8k1Pgb2T4jqHq+jamyL+mH20v5XvVysj5JSPm7z1u3NeP2oO2H72dgv/U/in0mQK/NQX+QAp8JAW+fzb2u8R4THlBVG42ra/yHe6FSrtnU/+g7ddziN8YJvSsUePrspOXe1cK/MPZlI9Wb4+lyH8wBb7ImBy/MAX+zynwW43U3qpYv3Ar44QU+a82JceXpMD/JAX+8xR4w+UMr5l35F+ePH8oBX5fCvyxFPi0AcnxCwYwf7tI7R/qUuT/QQr84wOovSnnbZR1pW0D1N+hVn6vMj7aczE9jI/yPXhlfIUfnkK88j14xd8uHZhcnrUMv147v4MJuOQmp4Yk2bnE6y7shbH0xkzsjSrqheqdqXee4l6YMiF+zicQXCLZJXeBq7FRkL574SeAKibabyyfWCa5bDbbzMZ5c2qkiyKfWWhbdn4C9XGrS6KZeAE0RQEZ6mOrmuM6b9ZifNLkgpgqx9uookouRlEK6fkqTM7/WgoT53/t1XIJPVxrn1tdKCVqZ6t22qsnSSjCuWUvXRL0eGWPL1A81+9z2zDnHItFktiRQcld3ODEo6z282sUCkMhihFhr5FsFkuTOxD0ggkCwnZT9WSJcj+PIMhqcl3Qh7WaFGj0emQo/UZN9bBiNS5voCk5vY0SBhoxCyBqbZPr/E3LnU21KFhdI1FM403VpRcmEjECRaZSfMrD6/G5Uax5CblIpnMJRjPEyc8rXNmFCafIVezxyRLINK+Xqrw3ERuslh2lkuTxe3weGcAa+8Uc/7uA/NqzkhdCojm3eQEkSQ6Hnp8qcfT0/HnL1FWovkgtVV+8lqovXkvVl6Sl6ovQUvVFaWnBRWppwcVracGFCu9qkgNysK6uwCXUupvcSz0B2d0kyQ3QOcDFBQRJqvVLS73+JU6vVAsdJyA5g82Cy9/Q6HXL7tqCyWVlk5Nnkuqg79BHiCRQbNMKoa7J2eCWaoMNDSuAhIMk7GWqrJI0a155pU2yzZ0pQXeUZs+dL9lEhhRnzhOkmbfMLa+0V8A9FXGtGhGQnU1yPJ7fNGtWta1Gqimf4bBJQp3s9nqt1tkO+4wKaWLBxIJJ6EKq/UWNQdnmYjcWLpSKCooFyY0PphG/MNnnB2/vX67JAJTyZPZUp2Ui/wyc3VUtWyz4aKckNznB0dpdGHEg5JVJlRJ9ChXDa4OKY8FEC2Va6vEHJHzSEYOTplD7TRJ5MlkKBty1RDoLyEDEA5JaiTwLoiECobxun7reGLYEFN4pscdH3GxIBAZltQJp+Qy7ZCkoImVMLFTKAEZL5XrJjbYENfhnqSQQ8Cz12ebNqS6Weumkwd0QcMuaZpNqA36pHvq91w3F1nqrlgGxXMZaSpK1gtUsgPInxSVyOxuWBOuSCWXTUKJs7iZZqnN6NKbjIopLYk6T6rzBQH2vpsO2Kovr0b8UJEmhRtIsdU3ulE1S64XhDWs1MHgZWDV63KgpV+OKhEQWbZOUUQX4aZtQPaRumQqLDW4VSXYwx5vAZhv8te7eFkttSHY3e7RtRJqlt4X4scXps7p2r802r9pfo2n0MqGOPMis5edb3pDE4CxFTUGf7AHXQtQ506LV/BJXQ6OWVU3NpevFlkQJNZUViuvCdi6RCDNgo9Q0manNQ+ETRWOh4KsKJVt1iVQ1p7pI8mr1giOeanmSiwwiXTZonEppuafW7SMuUFPxAovl0rokRBLuaV9bg6tXhevwoV61TtFetVqmmkh4J5czICfpFsUufzBJj51rKSSCO5d4llnQBQU8EKSgP5IhM9S4zm9T9wsJfTYLASC87E/i7eUS7Dgwa+llJ5K0BHizAIJer1iRHcST/HUSjPiXuqW6Bhm67F0anRSytrloXRdB1KyF0NkUwDJIWDhfXCi2Q2NX9Jb/ktq6kDxB3+h1uty2hoakUanO7a/T+l+vZ4lLcgWCEhsvX0LRk9lT/7YkJS51y4Ekbafp66CDeXMuoWRbMgVfSuOVkMYDm5QlCD2p2w88c4N/mbZ/SEubm6VGd1PA73PCfGyFtKxQE3ovSajJnEWdUyqiUub7wLaS+qhJLq/b2YSBYCIJBPAPAo47WcRigyS+AvN9y1GWeTDTbUCaigrIX3jpAwUXOEnZbZuXrDIJk8RxKKucm1/50ApNCEh/l3A81CtG2HkGWuKlDX4fI5ZYSyUyFy+vd8q9+ydy1JhwErfHqWYSr5oUI5bUJg3x8tyjol5OpbdTFAoCKxpk5xJIwaGStF65gim1u6lRKAD+7gJo8/GycymDlvqCBTgFrx3vqRUIVO8M1AsFtSt8wI+mchO9ww7YqAAJ7sEQx4kZ2VWjV8YiwdsUwGgD/pJmLmjyk4F6gbueTTDqa5sSEDB1uVSLfZQHnS1QHso18sGigCUR0NngcQG9XyZ/aPm0LIgTQgFMiXD++I+fLxvO9gKVdV/lvFApQ4xIcU4xvl7Ozt4p9Mq5ohqGMPfaW1X/LBp65fyRzBC556HH54VOxWJ+hV45p/QwQ9ymnEPUnGdUfnPZ2cQ0zfnFHgWRmUh0HL2yLr2AnRlM05yH7DGozz+m0t/t7OyhQq+cjzrLFtBXa+RP06R3srOMCqyco1p9OYU7uGrok9T/LqbTNM35SesA9flJrf6U+rcy+hma85iFA9XnNzMYjZZ+HdNJpub8al6O+pxnqvYPaeiVc15WRr9Yr85v0qQ/0dAr53keZUeZrpqRnF75/VxDr+y/blukPneaSv5HNf1P2T/fy+gfNp27/Cc09Mr5hHof248+T/nPauiV82o5fuYPNARa++nQ0CvnuaoCrP115y5/H/zL5s7dKuci8lYmr69Bk74N/4wcvXLeonRlcnm19MeY/Aq9cj7Cyuif0Miv9Wenub7Fn9eNrFJ31ExNuSbOIfDlK+fzIvdcWP0zNPTx8yPMcXTozk2fraFX9oU77j13+cpvkI7iFHplH3rvvYnzbefS31BWfqEGr9BXXcA5+WTP95nXMH9kFOLn52qS+J8+vO74cx8/pOkfB57bf1+egv7bx5j/0J2b/v8C0FEWy+CtAAA='
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)

Submission status: Wrong Answer

Solution code:
from collections import Counter
h,w,m = map(int,input().split())
lir = []
lirr = []
lic = []
licc = []
ans = 0
for _ in range(m):
    x,y = map(int,input().split())
    lir.append(x)
    lirr.append(x)
    lic.append(y)
    licc.append(y)
maxr = Counter(lir).most_common()[0][0]
for i in range(m):
    if lir[i] == maxr:
        ans+=1
        lir[i] = -1
        lic[i] = w+i
if min(lic) <= w:
    maxc = Counter(lic).most_common()[0][0]
    for i in lic:
        if i == maxc:
            ans+=1

anss = 0
maxcc = Counter(licc).most_common()[0][0]
for i in range(m):
    if licc[i] == maxcc:
        anss+=1
        licc[i] = -1
        lirr[i] = w+i
if min(lirr) == w:
    print(max(ans,anss))
else:
    maxrr = Counter(lirr).most_common()[0][0]
    for i in lirr:
        if i == maxrr:
            anss+=1
    print(max(ans,anss))

Submission status: Wrong Answer

Solution code:
import collections

H, W, M = map(int, input().split())
h = [0] * M
w = [0] * M

for i in range(M):
    h[i], w[i] = map(int, input().split())

c_h = collections.Counter(h).most_common()
c_w = collections.Counter(w).most_common()

res = c_h[0][1] + c_w[0][1]
for i in range(M):
    if c_h[0][0]==h[i] and c_w[0][0]==w[i]:
        res = res - 1
print(res)

Submission status: Wrong Answer

Solution code:
#from collections import deque

import sys
input = sys.stdin.readline
h,w,m = map(int,input().split())
hw = [list(map(int,input().split())) for _ in range(m)]

cnt_h = [0] * h
cnt_w = [0] * w

for h1,w1 in hw:
    cnt_h[h1-1] += 1
    cnt_w[w1-1] += 1

lh = []
lw = []

for i,e in enumerate(cnt_h):
    lh.append((e,i))

for i,e in enumerate(cnt_w):
    lw.append((e,i))

lh.sort(reverse = True)
lw.sort(reverse = True)

mh = lh[0][0]
mw = lw[0][0]

idx_h = 0
idx_w = 0

cnt = 0
for i,j in lh:
    if i == mh:
        cnt += 1
    else:
        break

idx_h = cnt

cnt = 0
for i,j in lw:
    if i == mw:
        cnt += 1
    else:
        break

idx_w = cnt

ans = mh + mw

v = [[False] * w for _ in range(h)]
for h1,w1 in hw:
    v[h1-1][w1-1] = True

if idx_h * idx_w > m:
    print(ans)
    exit()

for i in range(idx_h):
    for j in range(idx_w):
        if not v[lh[i][1]][lw[j][1]]:
            print(ans)
            exit()

Submission status: Wrong Answer

Solution code:
import numpy as np

h, w, m = list(map(int, input().split()))
bh = [0]*h
bw = [0]*w
bhw = np.asarray([[0]*w]*h)
hmaxs = []
wmaxs = []

for i in range(m):
    h,w = map(int, input().split())
    bh[h-1] +=1
    bw[w-1] +=1
    bhw[h-1][w-1] =1

maxbh= max(bh)
maxbw =max(bw)

for i in range(h):
    if bh[i] == maxbh:
        hmaxs.append(i)

for i in range(w):
    if bw[i] == maxbw:
        wmaxs.append(i)

c =1



for i in hmaxs:
    for j in wmaxs:

        if bhw[i][j]==0:
            c=0

print(maxbh + maxbw -c)

Submission status: Wrong Answer

Solution code:
from operator import itemgetter

H, W, M = map(int, input().split())
h_count = [[i, 0] for i in range(H)]
w_count = [[i, 0] for i in range(W)]
exist = dict()
for _ in range(M):
    h, w = map(lambda x: int(x)-1, input().split())
    h_count[h][1] += 1
    w_count[w][1] += 1
    exist[(h, w)] = True

h_count.sort(key=itemgetter(1), reverse=True)
w_count.sort(key=itemgetter(1), reverse=True)
h_max = h_count[0][1]
w_max = w_count[0][1]
res = 0
is_dup = True
for h in h_count:
    if h[1] != h_max or is_dup:
        break
    for w in w_count:
        if w[1] != w_max or is_dup:
            break
        val = h[1] + w[1]
        if exist.get((h[0], w[0]), False):
            val -= 1
        else:
            is_dup = False
        res = max(res, val)
print(res)

Submission status: Wrong Answer

Solution code:
H, W, M = map(int, input().split())
m = []
for _ in range(M):
  m.append(list(map(int, input().split())))

dic = {}
for i in range(M):
  if m[i][0] in dic:
    dic[m[i][0]] += 1
  else:
    dic[m[i][0]] = 1

Submission status: Wrong Answer

Solution code:
import sys


inint = lambda: int(sys.stdin.readline())
inintm = lambda: map(int, sys.stdin.readline().split())
inintl = lambda: list(inintm())
instrm = lambda: map(str, sys.stdin.readline().split())
instrl = lambda: list(instrm())

h, w, m = inintm()

H = [0]*(3*(10**5)+1)
W = [0]*(3*(10**5)+1)

ans = 0

for i in range(m):
    hh, ww = inintm()
    H[hh] += 1
    W[ww] += 1


hm = max(H)

for i in range(3*(10**5)+1):
    if H[i] == hm:
        if H[i]+W[i] > ans:
            if H[i] > 0 and W[i] > 0:
                ans += H[i]+W[i] - 1
            else:
                ans = H[i]+W[i]

print(ans)

Submission status: Wrong Answer

Solution code:
from statistics import mode

h, w, m = map(int,input().split())

o = []
for i in range(m):
    o.append([int(x) for x in input().split()])

b = []
b.append([x[0] for x in o])
b.append([x[1] for x in o])
hm = mode(b[0])
wm = mode(b[1])
hc = b[0].count(hm)
wc = b[1].count(wm)
output = hc + wc

if [hm, wm] in o:
    output -= 1

print(output)

Submission status: Wrong Answer

Solution code:
h,w,m=map(int, input().split())
hw=[list(map(int, input().split())) for _ in range(m)]

tate=[]
yoko=[]

for i in range(m):
    tate.append(hw[i][0])
    yoko.append(hw[i][1])

from collections import Counter
tatec=Counter(tate).most_common()
yokoc=Counter(yoko).most_common()

c_1_max=tatec[0][0]
c_1s=[]
for t in tatec:
    if t[0]==c_1_max:
        c_1s.append(t[0])

c_2_max=yokoc[0][0]
c_2s=[]
for y in yokoc:
    if t[0]==c_2_max:
        c_2s.append(t[0])


flag=False

for c_1, c_2 in zip(c_1s, c_2s):
    tmp_flag=0
    for i in range(m):
        h_i=hw[i][0]
        w_i=hw[i][1]
        if h_i!=c_1 or w_i!=c_2:
            tmp_flag+=1
    if tmp_flag==m:
        flag=True


print(max(tatec[0][1]+yokoc[0][1], 1) if flag else max(tatec[0][1]+yokoc[0][1]-1, 1))

Submission status: Wrong Answer

Solution code:
h,w,m=map(int,input().split())

max_h=[0 for i in range(h+1)]
max_w=[0 for i in range(w+1)]
grid=[[0 for i in range(w)] for j in range(h)]
#pro=[list(map(int,input().split())) for i in range(m)]
#pro.sort()
for t in range(m):
    #h=pro[t][0]
   # w=pro[t][1]
    h,w=map(int,input().split())
    max_h[h]+=1
    max_w[w]+=1
    grid[h-1][w-1]=1
h_max=[i for i, x in enumerate(max_h) if x == max(max_h)]
w_max=[i for i, x in enumerate(max_w) if x == max(max_w)]

ans=0
for i in h_max:
    for j in w_max:
        cnt=0
        cnt +=list(zip(*grid))[j-1].count(1)
        cnt += grid[i-1].count(1)
        '''
        for k in range(h):
            if grid[k][j-1]==1:
                cnt += 1
        for l in range(w):
            if grid[i-1][l]==1:
                cnt += 1
        '''
        if grid[i-1][j-1]==1:
            cnt -= 1
        
        if cnt > ans:
            ans=cnt
print(ans)
print(grid)

Submission status: Wrong Answer

Solution code:
import copy
import sys
H, W, M= map(int,input().split())
height = [0]*H
width = [0]*W
object = []
for s in sys.stdin.readlines():
    h, w = map(int, s.split())
    height[h-1] += 1
    width[w-1] += 1
    object.append([h-1, w-1])
h_max = max(height)
w_max = max(width)
cand_w = []
cand_h = []
for i in range(W):
   if width[i] == w_max:
      cand_w.append(i)
for i in range(H):
   if height[i] == h_max:
      cand_h.append(i)
ans = h_max + w_max - 1
p = len(cand_h)*len(cand_w)
if M > p:
   for i in range(len(cand_h)):
      for j in range(len(cand_w)):
         if [i,j] in object == 0:
            ans += 1
else:
   ans += 1
print(ans)