import sys, os from collections import defaultdict as dd from itertools import combinations as comb def grid_geom(G): H = len(G) W = len(G[0]) return W, H def in_grid(G, x, y) -> bool: W, H = grid_geom(G) return x>=0 and x=0 and y1 and sys.argv[1]=="2" else [1] L = sys.stdin.read().strip().split("\n") G = [list(l) for l in L] # dico of position P = dd(list) W, H = grid_geom(G) for y in range(H): # rows for x in range(W): # cols v = get_in_grid(G, x, y) if v != '.': P[v].append((x, y)) A = set() # antinodes for k,v in P.items(): for a,b in comb(v,2): x1, y1 = a x2, y2 = b dx = x2 - x1 dy = y2 - y1 for i in R: x3 = x1 - i*dx y3 = y1 - i*dy x4 = x2 + i*dx y4 = y2 + i*dy if in_grid(G, x3, y3): A.add((x3,y3)) if in_grid(G, x4, y4): A.add((x4,y4)) print(len(A))