diff --git a/Backtracking/3980.cpp b/Backtracking/3980.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..65952045593ac17db165ec89e6bf505cf592f713
--- /dev/null
+++ b/Backtracking/3980.cpp
@@ -0,0 +1,49 @@
+#include<iostream>
+#include<vector>
+#include<algorithm>
+using namespace std;
+
+int ans;
+int check[11];
+int player[11][11];
+
+void back(int play, int sum)
+{
+    if(play == 11)
+    {
+        ans = max(ans, sum);
+        return;
+    }
+
+    for(int i=0;i<11;i++)
+    {
+        if(player[play][i] != 0 && check[i] == 0)
+        {
+            check[i] = 1;
+            back(play+1, sum + player[play][i]);
+            check[i] = 0;
+        }
+    }
+}
+
+int main()
+{
+    ios_base::sync_with_stdio(false);
+    cin.tie(NULL);
+    cout.tie(NULL);
+
+    int T;
+    cin >> T;
+    while(T--)
+    {
+        ans = 0;
+        
+        for(int i=0;i<11;i++)
+            for(int j=0;j<11;j++)
+                cin >> player[i][j];
+
+        back(0, 0);
+
+        cout << ans << "\n";
+    }
+}
\ No newline at end of file
diff --git a/Backtracking/6443.cpp b/Backtracking/6443.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..72e3f8371d86d3597a1415c7d75c615c80431f4e
--- /dev/null
+++ b/Backtracking/6443.cpp
@@ -0,0 +1,40 @@
+#include<iostream>
+#include<vector>
+#include<string>
+#include<algorithm>
+using namespace std;
+
+void back(int idx, string str, int len)
+{
+    if(idx == len - 1)
+    {
+        cout << str << "\n";
+        return;
+    }
+
+    for(int i=idx;i<len;i++)
+    {
+        if(i != idx && str[i] == str[idx])
+            continue;
+        if(str[i] != str[idx])
+            swap(str[i], str[idx]);
+
+        back(idx+1, str, len);
+    }
+
+}
+
+int main()
+{
+    int t;
+    cin >> t;
+    while(t--)
+    {
+        string in;
+        cin >> in;
+
+        sort(in.begin(), in.end());
+
+        back(0, in, in.size());
+    }
+}
\ No newline at end of file
diff --git a/Backtracking/9663.cpp b/Backtracking/9663.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1321066b1b3d71fea6673667b8315103ed400ed7
--- /dev/null
+++ b/Backtracking/9663.cpp
@@ -0,0 +1,50 @@
+#include<iostream>
+#include<vector>
+using namespace std;
+
+int N, ans;
+int board[16][16];
+
+bool check(int x, int y)
+{
+    for(int i = 0; i<N;i++)
+        if(board[x][i] == 1 || board[i][y] == 1)
+            return false;
+
+    for(int i=x, j=y;i>=0 && j>=0;i--,j--)
+        if(board[i][j] == 1)
+            return false;
+    
+    for(int i=x, j=y;i>=0 && j<N;i--,j++)
+        if(board[i][j] == 1)
+            return false;
+    
+    return true;
+}
+
+void back(int idx)
+{
+    if(idx == N)
+    {
+        ans++;
+        return;
+    }
+
+    for(int i=0;i<N;i++)
+        if(check(idx,i) == true)
+        {
+            board[idx][i] = 1;
+            back(idx + 1);
+            board[idx][i] = 0;
+        }
+}
+
+int main()
+{
+    cin >> N;
+
+    back(0);
+
+    cout << ans;
+
+}
\ No newline at end of file