D,Cを解きました。

D

def readints():
  return map(int,raw_input().split())

def main():
  global n,m
  n,m=readints()
  data=[raw_input().split() for j in xrange(n)]
  alldata=[d for d2 in reps(data,"J1") for d in reps(d2,"J2")]
  #print alldata
  for d in alldata:
    allplace=[(i,j) for i in xrange(n) for j in xrange(m) if okp(i,j,d)]
    for x1,y1 in allplace:
      for x2,y2 in allplace:
        if abs(x1-x2)<3 and abs(y1-y2)<3:continue
        print"Solution exists."
        joker_mes=[]
        for jk in ["J1","J2"]:
          for i in xrange(n):
            for j in xrange(m):
              if data[i][j]==jk:
                joker_mes.append((jk,d[i][j]))
        if len(joker_mes)==0:
          print"There are no jokers."
        if len(joker_mes)==1:
          jk,c=joker_mes[0]
          print "Replace %s with %s."%(jk,c)
        if len(joker_mes)==2:
          (j1,c1),(j2,c2)=joker_mes
          print "Replace J1 with %s and J2 with %s."%(c1,c2)
        mes((x1,y1),0)
        mes((x2,y2),1)
        return
  print "No solution."
  pass

def ins(x,y):
  return 0<x<n-1 and 0<y<m-1

def reps(data,s):
  rem = allcards-set(data[i][j]for i in xrange(n) for j in xrange(m))
  ret=[]
  for i in xrange(n):
    for j in xrange(m):
      if data[i][j]==s:
        for card in rem:
          ndata=deepcopy(data)
          ndata[i][j]=card
          ret.append(ndata)
        return ret
  return [data]

def mes(p,n):
  th=["first","second"][n]
  print"Put the %s square to (%s, %s)."%(th,p[0],p[1],)

def okp(x,y,dd):
  if not ins(x,y):return False
  adj=[(x+dx,y+dy) for dx in [-1,0,1] for dy in [-1,0,1]]
  return all(dd[x][y][1] == dd[nx][ny][1] for nx,ny in adj) or len(set(dd[nx][ny][0] for nx,ny in adj)) ==9


from copy import deepcopy
ranks="2 3 4 5 6 7 8 9 T J Q K A".split()
suits="C D H S".split()
allcards=set([ra+su for ra in ranks for su in suits])

if __name__=='__main__':
  main()

C

def readints():
  return map(int,raw_input().split())

def main():
  n=input()
  x=readints()
  for k in xrange(3,n+1):
    if n%k:continue
    m=n/k
    for i in xrange(m):
      if all(x[i+t*m] for t in xrange(k)):
        print "YES"
        return
  print "NO"
  pass