diff --git a/day 4/day_4_mark.js b/day 4/day_4_mark.js
new file mode 100644
index 0000000000000000000000000000000000000000..bff557d448de5d45271722087e107fc7cf592263
--- /dev/null
+++ b/day 4/day_4_mark.js	
@@ -0,0 +1,10 @@
+hor = input.split("\n")
+n = hor.length
+m = hor[0].length
+range = x => [...Array(x).keys()]
+vert = range(m).map(i => range(n).map(j => hor[j][i]).join(''))
+diag1 = range(n+m-1).map(i => range(m).map(j => (hor[i+j+1-m] ? hor[i+j+1-m][j] : '')).join(''))
+diag2 = range(n+m-1).map(i => range(m).map(j => (hor[i-j] ? hor[i-j][j] : '')).join(''))
+
+output1 = [hor, vert, diag1, diag2].map(z=>z.map(x=>[...x.matchAll(/XMAS/g)].length+[...x.matchAll(/SAMX/g)].length).reduce((x,y)=>x+y)).reduce((x,y)=>x+y) 
+output2 = range(n).map(i => range(m).map(j=> hor[i][j] == 'A' ? (hor[i-1] && hor[i+1] ? ((hor[i-1][j-1] == 'M' && hor[i+1][j+1] == 'S') || (hor[i-1][j-1] == 'S' && hor[i+1][j+1] == 'M')) && ((hor[i-1][j+1] == 'M' && hor[i+1][j-1] == 'S') || (hor[i-1][j+1] == 'S' && hor[i+1][j-1] == 'M')) : false) : 0).reduce((x,y)=>x+y)).reduce((x,y)=>x+y) 
\ No newline at end of file