diff --git a/day_10/main.py b/day_10/main.py
index f739df6df5163e3113b39e6e5af66f933ec8837c..59ae6317be7de76e3d4fa04812f6587e02a49944 100644
--- a/day_10/main.py
+++ b/day_10/main.py
@@ -2,18 +2,20 @@
 import itertools
 import math
 
+
 def input_map():
     with open("input.txt") as f:
         lst = f.readlines()
-    
+
     return [list(l.strip()) for l in lst]
 
+
 def get_stroid_addrs(map):
     stroid_list = []
     for row, col in itertools.product(range(len(map)), range(len(map[0]))):
-            if map[row][col] == '#':
-                stroid_list.append((row, col))
-            # print(f'row{row},col{col} {map[row][col]}')
+        if map[row][col] == "#":
+            stroid_list.append((row, col))
+        # print(f'row{row},col{col} {map[row][col]}')
     return stroid_list
 
 
@@ -27,26 +29,53 @@ def main():
     for point in l:
         angles = set()
         for point2 in l:
-            angles.add(math.atan2(point2[0] - point[0], point2[1] - point[1]))
+            angles.add( math.atan2(point2[0] - point[0], point2[1] - point[1]) * 180 / math.pi)
 
-        ac_dict[str(point)] = len(angles) 
-        ac_dict2[str(point)] = angles
+        ac_dict[point] = len(angles)
+        ac_dict2[point] = angles
 
-    print( max(ac_dict.values()))
-    maxd = ''
+    print(max(ac_dict.values()))
+    maxd = ""
     for d in ac_dict:
         if ac_dict[d] == 303:
             maxd = d
             break
 
-    print(f'Max = {d}')
-    point = (29, 26)
+    print(f"Max = {d}")
+    point = d
 
     roid_dict = {}
     for point2 in l:
-       roid_dict[str(point2)] = math.atan2(point2[0] - point[0], point2[1] - point[1])
-    
-    print(roid_dict)
+        if point2 == point:
+            continue
+        roid_angle = round((math.atan2(point2[0] - point[0], point2[1] - point[1]) * 180 / math.pi))
+        if roid_angle <  0:
+            roid_angle += 360
+        roid_dist = max(point2[0], point[0]) - min(point[0], point2[0]) + max(point2[1], point[1]) - min(point[1], point2[1])
+        roid_dict.setdefault(roid_angle, []).append((roid_dist, point2))
+
+    roid_dict_s = {k:sorted(v) for (k, v) in roid_dict.items()}
+
+    roid_dict = {}
+    for k in sorted(roid_dict_s):
+        if k >= 270:
+            roid_dict[k] = roid_dict_s[k]
+    for k in sorted(roid_dict_s):
+        if k < 270:
+            roid_dict[k] = roid_dict_s[k]
+
+    cnt = 1
+    for k in roid_dict:
+        print(f'#{cnt}  {k}° {roid_dict[k].pop(0)}')
+        cnt += 1
+
+    for k in roid_dict:
+        if not roid_dict[k]:
+            continue
+        print(f'#{cnt}  {k}° {roid_dict[k].pop(0)}')
+        cnt += 1
+
+
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     main()