diff --git a/C++/Dynamic Programming/Painting Fence b/C++/Dynamic Programming/Painting Fence
new file mode 100644
index 00000000..afc4a8af
--- /dev/null
+++ b/C++/Dynamic Programming/Painting Fence	
@@ -0,0 +1,27 @@
+#include <bits/stdc++.h> 
+using namespace std; 
+  
+// Returns count of ways to color k posts 
+long cWays(int n, int k) 
+{ 
+    long d[n + 1]; 
+    memset(d, 0, sizeof(d)); 
+    long long mod = 1000000007; 
+  
+    d[1] = k; 
+    d[2] = k * k; 
+  
+    for (int i = 3; i <= n; i++) { 
+        d[i] = ((k - 1) * (d[i - 1] + d[i - 2])) % mod; 
+    } 
+  
+    return d[n]; 
+} 
+  
+// Driver code 
+int main() 
+{ 
+    int n = 3, k = 2; 
+    cout << cWays(n, k) << endl; 
+    return 0; 
+}